Prologを学びながら、私はアキュムレータを使用して次の問題を解決しようとしています。
最初の引数が整数のリストであり、2番目の引数が最初のリストの各整数に1を加算して得られる整数のリストである述語addone2/を記述します。たとえば、クエリ
addone([1,2,7,2],X).
与える必要があります
X = [2,3,8,3].
次のコードを作成しました。
addone([], _).
addone([E|Tail], [R|Rs]) :-
NewE is E+1,
append([R|Rs], [NewE], NewRs),
addone(Tail, NewRs).
しかし、それは機能していません。誰かが理由を教えてもらえますか?では、Prologでアキュムレータを使用するにはどうすればよいですか?
ありがとう!