【发布时间】:2021-01-02 20:41:33
【问题描述】:
假设 SICStus Prolog 是 某些谓词的实施,甚至是 ISO 核心标准 谓词。特别是与属性变量有关。
然后我会找到这些示例here。它来自 SICStus 4,而不仅仅是 SICStus 3:
?- when(nonvar(X), X=a), subsumes_term(X, b), X = a.
X = a ?
yes
?- when(nonvar(X), X=a), subsumes_term(X, b), X = b.
no
在 SWI-Prolog 中执行相同操作时,我会得到不同的结果:
?- when(nonvar(X), X=a), subsumes_term(X, b), X = a.
false.
?- when(nonvar(X), X=a), subsumes_term(X, b), X = b.
false.
如何在 SWI-Prolog 中实现一种解决方法? ROKs METUTL.PL 可能没有帮助,因为它使用正常的统一。
【问题讨论】:
标签: prolog swi-prolog sicstus-prolog