我试图在prolog的列表末尾添加一个项目,但它一直在失败。
insertAtEnd(X,[ ],[X]).
insertAtEnd(X,[H|T],[H|Z]) :- insertAtEnd(X,T,Z).
letters([a,b,c]).
我不明白为什么以下这个不起作用。
insertAtEnd(d,letters(Stored),letters(Stored)).
我也试图将此列表存储在整个存储的变量中,但我不确定上述是否是正确的继续进行。
答案 0 :(得分:4)
Prolog实现了关系计算模型,变量只能实例化,而不能分配。尝试
?- letters(Stored),
insertAtEnd(d, Stored, Updated),
write(Updated).
答案 1 :(得分:2)
你可以使用append 并将您的项目作为第二个列表
像这样:insertAtEnd(X,Y,Z): - 追加(Y,[X],Z)。