今回は、エラーを本当に理解できません。特定の位置にあるリスト要素を取得するために、このコードを記述しました。
take_pos([], _, _) :- fail;
take_pos([H|T], 1, H).
take_pos([H|T], Pos, X) :- Pos2 is Pos - 1, take_pos(T, Pos2, X).
終了することはありません。それをトレースすると、2番目のステートメントと一致しないことがわかります。また、クエリを実行take_pos([1,2,3], 1, 1).
すると、最後のものと一致します。
私は何が欠けていますか?