car([H|T],H).
cdr([H|T],T).
cons(H,T,[H|T]).
memset0(E1,List):-List=[H|T],E1=H.
memset0(E1,List):-List=[H|T],memset0(E1,T).
or an abbreviated version:
memset(X|[X|_]).
memset(X|[_|T]):-memset(X,T).
apend0([],Lis,Ans) :- Ans=Lis. apend0(Lis1,Lis2,Ans) :- Lis1=[H|T], apend0(T,Lis2,Lis3),Ans=[H|Lis3]. apend([],L,L). apend([H|T],L2,[H|L3]):-apend(T,L2,L3).
rev0([],[]).
rev0(List,Z):-List=[H|T],rev0(T,Z1),apend(Z1,[H],Z).
rev([],[]).
rev0([H|T],Z):-rev0(T,Z1),apend(Z1,[H],Z).
isunion0([],Lis1,Lis1).
isunion0([X|Lis1],Lis2,Lis3):-member(X,Lis2),isunion0(Lis1,Lis2,Lis3).
isunion0([X|Lis1],Lis2,[X|Lis3]):-isunion0(Lis1,Lis2,Lis3).
inter0([],Lis,[]).
inter0([X|Lis1],Lis2,Ans):-member(X,Lis2),inter0(Lis1,Lis2,Ans).
inter0([X|Lis1],Lis2,Ans):-not(member(X,Lis2)),inter0(Lis1,Lis2,Ans).