3

我在 SWI-PL 文档中多次遇到键值对,但无法获得有关它们的好信息。这是 prolog 中的标准还是只是一个 swi pl 扩展?主要在这里找到:http ://www.swi-prolog.org/pldoc/doc_for?object=keysort/2 和这里:http://www.swi-prolog.org/pldoc/doc_for?object=section%282, %27A.3%27,swi%28%27/doc/Manual/assoc.html%27%29%29

例如,对的形式是 a-5,或者在列表中 [a-5, b-7]。

如果它是标准的,使用这些是否有任何附加价值?他们的兴趣是什么?提前致谢 :)

4

1 回答 1

7

能够使用 keysort/2 确实是选择对列表(带有 (-)/2)作为表示的常见原因。它也是一种方便、简短且易读的符号,并且 (-)/2 已经是一个中缀运算符(是的,“标准”,因为它是由 Prolog ISO 标准规定的)。(-)/2-pairs 的使用当然不限于键值组合,其他示例包括 id-variable、variable-“它在一个术语中出现的次数”等等,无论您表示二进制关联的任何地方. 通常其他运算符更直观地表示这种关联,例如 variable=value(而不是 variable-value)表示变量的绑定,或 string+string 表示连接。

于 2011-11-08T15:54:10.263 回答