建立新规则

时间:2019-02-22 18:17:07

标签: prolog

假设我想在我的知识库中添加一条规则。

我知道新规则的名称,参数列表和正文。 例如:

rule name = test_rule     
argument list = [X, Y]     
body = (write(X), nl, write(Y))

构造的规则应类似于:

test_rule(X, Y):-
write(X),
nl,
write(Y).

我可以通过使用functor,arg和assert的组合来实现。 现在,我们说每个构造规则都必须有一个名为Z的变量作为参数。

以前的规则现在应该是:

(忽略不使用Z的事实,这不是问题)

test_rule(Z, X, Y):-
    write(X),
    nl,
    write(Y).

天真的,我认为一个简单的解决方案可能是通过附加[Z]和[X,Y]来构造一个新的参数列表,但是我不能这样做,因为

append([Z], Arg_List, Result)

给我Z上的一个单例错误。这非常有意义,所以我想更具体的答案是如何在列表中保留变量符号?

序言与Lisp引用运算符等效吗?

有更好的方法吗? (可能是)

0 个答案:

没有答案