1
私は、プロローグに偶数の変数を含むリストを2つの半分に分割して入れ替える述語を書いています。たとえば、[a、b、c、d]→[c、d、a、b]などです。Prolog:リストの2つの半分を入れ替えよう
append([], List, List).
append([Head|Tail], List, [Head|Rest]) :-
append(Tail, List, Rest).
divide(L, X, Y) :-
append(X, Y, L),
length(X, N),
length(Y, N).
swap([], []).
swap([A], D) :-
divide(A, B, C),
append(C, B, D).
私は、これが逆の順序で一緒にそれらを追加し、リストに「D」変数を割り当て、次に、2つの小さな等しいサイズのリストに[A]を分割することによって動作するように期待されます。
私が得意とするのは「偽」ですが、なぜこれは機能しませんか?
私は非常にプロローグの新機能ですので、これは愚かな/簡単な質問、ありがとう!