このディレクトリの索引
#
#  リストの要素を一つ選択する
#
#  8クイーンの部品として使われることで有名な述語である。
#
#  append/repeatの姿を持つ述語だが、使われたものが残り要素の中に戻ってくるところが面白い。
#  ここでは、定義を二つ示す。後者の方が遅いが宣言的だ。
#

リストの要素を一つ選択する(_選択要素,[_選択要素|_残り要素ならび],_残り要素ならび).
リストの要素を一つ選択する(_選択要素,[_選択要素_1|R1],[_選択要素_1|R2]) :-
        リストの要素を一つ選択する(_選択要素,R1,R2).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

リストの要素を一つ選択する(_選択要素,_選択ならび,_残りの要素ならび) :-
        append(L0,[_選択要素|R],_選択ならび),
        append(L0,R,_残りの要素ならび).