热切地评估Prolog中的所有谓词调用

时间:2016-11-05 22:11:18

标签: prolog

阅读SWI-Prolog documentation on meta-predicates,我最初认为f(...)相当于f,其中f(g(x))是谓词。但我观察到两者的行为在某些情况下实际上有所不同。例如,假设知识库包含条款call(f, g(x))。然后查询f(call(g, x))成功,而f(call(g, x))则不成功。这是有问题的,因为我有时需要使用其主体包含嵌套谓词调用的子句。我希望Prolog能够急切地评估所有谓词调用(我想知道这是否是正确的词?),以便在统一开始之前查询f(g(x))减少到{{1}}并成功。这可能吗?

0 个答案:

没有答案