Moments of Prolog, Exhibit 0

perm(Xs,Ys):-perm(Xs,[],Ys).

perm([])-->[].
perm([X|Xs])-->perm(Xs),ins(X).

ins(X),[X]-->[].
ins(X),[Y]-->[Y],ins(X).

rev(Xs,Ys):-rev(Xs,Ys,[]).

rev([])-->[].
rev([X|Xs])-->rev(Xs),[X].

subset(Xs,Sub):-subset(Xs,Sub,[]).

subset([])-->[].
subset([X|Xs])-->subset(Xs),elem(X).

elem(_)-->[].
elem(X)-->[X].

del(X)-->[X].
del(X),[Y]-->[Y],del(X).
Paul Tarau, 1993. ASCII code on data file.