% expensiveComp(+A,-Result)
% otherRule(+Arg1,Arg2+,-Result)
% r(+A,+B,C)
r(A,B,C) :-
expensiveComp(A,Result),
otherRule(Result,B,C).
如果多次使用 A
的相同值调用 r
,则每次 r
都必须重新评估 expenseComp
> 被调用,还是在某些情况下 Prolog 会将缓存值绑定(bind)到 Result
?
Prolog 的某些实现是否能够更好地了解何时不需要重新评估规则?
最佳答案
关于prolog - Prolog 总是重新评估规则吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31740949/