分析不同规则中的规则体

时间:2018-04-22 02:42:43

标签: reflection prolog

我需要能够以不同的规则访问规则的主体。例如,在下文中,我希望能够在调用rule时使用myRulemyRule(rule)的事实。

rule :-
    fact1(...),
    fact2(...),
    fact3(...).


myRule(RuleName) :-
    RuleName :- (F1, F2, F3),
    write(F1).

显然上面的代码不起作用,我不知道如何解决这个问题,所以我要求提示或其他任何方法让我朝着正确的方向前进。

请注意,我对Prolog和逻辑编程很新。我很难找到答案,因为我不确定到底要找什么。

1 个答案:

答案 0 :(得分:2)

调用clause(Head, Body)可以让您检查规则。因此,clause(rule, (F1,F2,F3))应该成功,绑定F1等。请注意,标准要求谓词检查被声明为动态,SWI-Prolog并不强制执行