pdfile(X) :- exists(X),!, (curpdfile(Y),retract(curpdfile(Y));true),assert(curpdfile(X)). pdfile(X) :- write('The file '),write(X),write(' is not available to you'),nl. typd(X) :- curpdfile(Y), name(Y,L), name(X,L1), append(L,[95|L1],L2), name(Z,L2), emas(ty,Z). anpd :- curpdfile(X),!,emas(analyse,X). anpd :- write('No file specified - use pdfile(X).'),nl. anpd(X) :- curpdfile(Y), name(Y,L), name(X,L1), append(L,[95|L1],L2), name(Z,L2), emas(analyse,Z). append([],L,L). append([X|L1],L2,[X|L3]) :- append(L1,L2,L3).