如何在prolog中添加到列表的末尾

时间:2012-10-31 03:37:57

标签: prolog

我试图在prolog的列表末尾添加一个项目,但它一直在失败。

insertAtEnd(X,[ ],[X]).
insertAtEnd(X,[H|T],[H|Z]) :- insertAtEnd(X,T,Z).    

letters([a,b,c]).

我不明白为什么以下这个不起作用。

insertAtEnd(d,letters(Stored),letters(Stored)). 

我也试图将此列表存储在整个存储的变量中,但我不确定上述是否是正确的继续进行。

2 个答案:

答案 0 :(得分:4)

Prolog实现了关系计算模型,变量只能实例化,而不能分配。尝试

?- letters(Stored),
   insertAtEnd(d, Stored, Updated),
   write(Updated).

答案 1 :(得分:2)

你可以使用append 并将您的项目作为第二个列表

像这样:

insertAtEnd(X,Y,Z): - 追加(Y,[X],Z)。