我是新来的Prolog,我很难用动态谓词。序言 - 使用动态断言
首先,这里我执行
:- dynamic(list/1).
add(X, LL) :- asserta(list([])), asserta(list(X)), retract(list(LL)).
代码我知道代码看起来怪异,但我只是在寻找使用正确的语法。
现在,如果我这样做:
add(2,LL)。
答案将是:
LL = 2;
LL = []。
但我想要做的是将X(2)添加到数组([])中。所以..
LL = [2]。
它看起来很简单(可能是),但我无法得到它的工作。
非常感谢。
我想将它添加到前面。我希望它失败,X = []。 –
如果你是Prolog的新手,忘记断言。首先了解其他所有内容:逻辑变量,统一,谓词和/或列表,递归,... – jschimpf