代码之家  ›  专栏  ›  技术社区  ›  Anthony Gauthier

分析不同规则中的规则体

  •  0
  • Anthony Gauthier  · 技术社区  · 6 年前

    我需要能够访问不同规则中的规则体。例如,在以下内容中,我希望能够使用 rule 在里面 myRule 当我打电话时 myRule(rule)

    rule :-
        fact1(...),
        fact2(...),
        fact3(...).
    
    
    myRule(RuleName) :-
        RuleName :- (F1, F2, F3),
        write(F1).
    

    显然,上面的代码不起作用,我也不知道该怎么做,所以我想寻求一些提示或任何东西,让我朝着正确的方向前进。

    请注意,我对Prolog和一般的逻辑编程非常陌生。我很难找到答案,因为我不确定到底要寻找什么。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Jan Wielemaker    6 年前

    使命感 clause(Head, Body) 允许您检查规则。因此 clause(rule, (F1,F2,F3)) 应成功,绑定 F1 注意,标准要求声明要检查的谓词 动态 ,SWI Prolog不强制执行该操作。