【发布时间】:2014-04-08 16:48:03
【问题描述】:
我是 Prolog 的新手,我很难使用动态谓词。
首先,这是我正在执行的代码
:- dynamic(list/1).
add(X, LL) :- asserta(list([])), asserta(list(X)), retract(list(LL)).
我知道代码看起来很奇怪,但我只是在寻找要使用的正确语法。
现在,如果我这样做:
添加(2,LL)。
答案是:
LL = 2 ;
LL = []。
但我想做的是将 X (2) 添加到数组 ([]) 中。所以..
LL = [2]。
它看起来很简单(可能是这样),但我无法让它工作。
非常感谢。
【问题讨论】:
-
我想加到前面。我希望它以 X = [] 失败。
-
如果您是 Prolog 新手,请忘记断言。首先学习其他所有内容:逻辑变量、统一、谓词和/或列表、递归……
标签: dynamic prolog prolog-assert