1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
:- module(lists, []). % List predicates length([], 0). length([_|Tail], Length) :- length(Tail, Length0), Length is Length0 + 1. member(X, [X|_]). member(X, [_|Tail]) :- member(X, Tail). append([], Ys, Ys). append([X|Xs], Ys, [X|Rest]) :- append(Xs, Ys, Rest).