• Source
    1. /**
    2.  * 飯高 茂「Prologで作る数学」 p.134
    3.  */
    4.  
    5. permutation([], []).
    6. permutation([A|X1], Y) :- delete(Y, A, Y1), permutation(X1, Y1).
    7.  
    8. delete([A|X], A, X).
    9. delete([B|X], A, [B|Y]) :- delete(X, A, Y).
    10.  
    11. program :-
    12. findall((X,Y), delete([1,2,3], X, Y), Bag),
    13. print(Bag).
    14.