私はPrologが初めてで、長さnの指定されたリストの要素にXOR演算を適用したいと考えています. リストの最初の n-1 要素に false 要素が含まれている場合、または最後の要素が True である場合、述語は True を返す必要があります。
これまでに以下のコードを書いたのですが、クエリ ?- function([true,false,false]) などで述語が True を返すはずなのに false を返すなど、うまく動作しません。
function([X|_]) :- \ + X,!.
function([X]):-X,!.
function([_|XS]):- function(XS),!,helper(XS).
helper([X]):- X,!.
helper([_|YS]):- helper(YS),!.
助けていただければ幸いです。ありがとう!