Blame | Last modification | View Log | RSS feed
/* pair2.pl -- pairs of digits WITHOUT replacement */
pair(L) :- L = [X,Y],
free_digit(X,L),
free_digit(Y,L).
free_digit(Dig,UsedList) :- var(Dig),
digit(X),
not_in(X,UsedList),
Dig = X.
free_digit(Dig,_) :- nonvar(Dig).
digit(0).
digit(1).
digit(2).
not_in(_,[]).
not_in(D,[H|T]) :- var(H), not_in(D,T).
not_in(D,[H|T]) :- nonvar(H), D \= H, not_in(D,T).