我需要能够访问不同规则中的规则体。例如,在以下内容中,我希望能够使用 rule 在里面 myRule 当我打电话时 myRule(rule) 。
rule
myRule
myRule(rule)
rule :- fact1(...), fact2(...), fact3(...). myRule(RuleName) :- RuleName :- (F1, F2, F3), write(F1).
显然,上面的代码不起作用,我也不知道该怎么做,所以我想寻求一些提示或任何东西,让我朝着正确的方向前进。
请注意,我对Prolog和一般的逻辑编程非常陌生。我很难找到答案,因为我不确定到底要寻找什么。
使命感 clause(Head, Body) 允许您检查规则。因此 clause(rule, (F1,F2,F3)) 应成功,绑定 F1 注意,标准要求声明要检查的谓词 动态 ,SWI Prolog不强制执行该操作。
clause(Head, Body)
clause(rule, (F1,F2,F3))
F1