/* lists.plg: list processing predicates */ /* David Harvey 18/1/89 */ /*----------------------------- import with [lists]. ------------------------------*/ /* isempty */ isempty([]). /* append */ append([],L,L). append([X|L1],L2,[X|L3]) :- append(L1,L2,L3). /* membership rule */ member(X,[X|_]). member(X,[_|Y]) :- member(X,Y). /* writelist */ writelist([]). writelist([H|T]) :- write(H), writelist(T). /* last */ last(X,[X]). last(X,[_|Y]) :- last(X,Y). /* first */ first(X,[X|_]). /* EOF lists.pl */ ist(T). /* last */ last(X,[X]). last(X,[_|Y]) :- l