Prolog 中的 +,+ 模式是什么意思?

chu*_*tsu 5 prolog iso-prolog

所以我被告知一个特定的谓词必须在 +,+ 模式下工作。这在 Prolog 中是什么意思?

m09*_*m09 5

当人们想在 prolog 中提供有关谓词的信息时,通常会使用这些约定:

arity : predicate/3表示谓词有 3 个参数。

参数 : predicate(+Element, +List, -Result)意味着 Element 和 List 不应该是自由变量,而 Result 应该是自由变量以使谓词正常工作。? 当它可以同时使用时使用,@ 在上面的答案中提到,但实际上并没有使用那么多(至少在 swi-pl doc 中),这意味着在通话期间不会绑定输入。

所以告诉somepredicate在 +, + 模式下工作是告诉这一点的快捷方式:

% somepredicate/2 : somepredicate(+Input1, +Input2)
Run Code Online (Sandbox Code Playgroud)