append([],L,L). append([X|L1],L2,[X|L3]) :- append(L1, L2, L3). vi(File) :- name(vi,V), name(File,FileString), append(V,[32|FileString],CommandString), name(Command,CommandString), unix(Command), consult(File). emacs(File) :- name(emacs,V), name(File,FileString), append(V,[32|FileString],CommandString), name(Command,CommandString), unix(Command), consult(File).