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.