7

我正在尝试将一项添加到序言中列表的末尾,但它一直失败。

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

letters([a,b,c]).

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

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

我也试图将此列表存储在变量 Stored through 中,但我不确定上述是否是正确的继续方式。

4

2 回答 2

5

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

像这样:

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

于 2016-06-27T09:23:09.340 回答
4

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

?- letters(Stored),
   insertAtEnd(d, Stored, Updated),
   write(Updated).
于 2012-10-31T07:23:35.183 回答