このディレクトリの索引
#  
#  Prologで、 f(X1, X2, X3, X4 ・・・Xn) のX1〜Xnまでダブりがないのを簡単に書く
#  方法が絶対にありそうなのに見つからない。X1 \= X2, を延々と書くのは無謀すぎる。
#  

関数の引数変数にダブリがない(_関数) :-
        _関数 =.. [_関数名|_引数リスト],
        append(L1,[_着目する要素|L2],_引数リスト),
        append(L1,L2,_着目する要素以外の要素リスト),
        変数リストの中に着目する要素と同一変数がある(_着目する要素,_着目する要素以外の要素リスト),
        !,
        fail.
関数の引数変数にダブリがない(_).

変数リストの中に着目する要素と同一変数がある(E,[A|R]) :-
        E == A,!.
変数リストの中に着目する要素と同一変数がある(E,[_|R]) :-
        変数リストの中に着目する要素と同一変数がある(E,R).