Max*_*axB 5 prolog swi-prolog occurs-check
根据维基百科:
为所有统一提供声音统一的实现是 Qu-Prolog 和 Strawberry Prolog 以及(可选地,通过运行时标志):XSB、SWI-Prolog和 Tau Prolog。
但是,当我这样做时,apropos(occur)它只会找到unify_with_occurs_check/2. 该男子页面没有提到“出现”要么。如何为 SWI-Prolog 中的所有统一启用发生检查?
在环境控制部分,它列出了系统的标志。该occurs_check标志是控制发生统一检查的标志。
您可以使用以下方法设置标志:
:- set_prolog_flag(occurs_check, true).Run Code Online (Sandbox Code Playgroud)
例如:
?- X = f(X).
X = f(X).
?- set_prolog_flag(occurs_check, true).
true.
?- X = f(X).
false.
Run Code Online (Sandbox Code Playgroud)
所以首先它X与f(X). 如果我们稍后将 设置occurs_check为true,那么如果我们X再次尝试与 统一f(X),则会失败。