我需要能够以不同的规则访问规则的主体。例如,在下文中,我希望能够在调用rule
时使用myRule
中myRule(rule)
的事实。
rule :-
fact1(...),
fact2(...),
fact3(...).
myRule(RuleName) :-
RuleName :- (F1, F2, F3),
write(F1).
显然上面的代码不起作用,我不知道如何解决这个问题,所以我要求提示或其他任何方法让我朝着正确的方向前进。
请注意,我对Prolog和逻辑编程很新。我很难找到答案,因为我不确定到底要找什么。
答案 0 :(得分:2)
调用clause(Head, Body)
可以让您检查规则。因此,clause(rule, (F1,F2,F3))
应该成功,绑定F1
等。请注意,标准要求谓词检查被声明为动态,SWI-Prolog并不强制执行