プロローグがリストでどのように機能するか理解できません。指定されたリストに末尾を追加して新しいリストを返す関数を作成しようとしています。しかし、私の実装は機能せず、修正方法がわかりません。ここに私が持っているものがあります:
% add_tail(L,M,E) :- L is M with [E] appended.
% I wanna do this without using the append predicate
add_tail([E],[],E).
add_tail(List, [H|T], E):-
add_tail(List1, T, E),
List is [H|List1].
この関数が何をしたいのかを明確にするために、出力の例を次に示します。
?- add_tail(L,[1,2,3],4).
L = [1,2,3,4].