8

所有 miniKanren 关系都以字母结尾o。这样做的动机是什么?我看到 Clojure core.logic 库也这样做。

4

2 回答 2

12

The Reasoned Schemer的序言中,他们是这样解释的:

一个关系,一个返回一个目标作为它的值的函数,它的名字以一个上标' o '结束(例如,car onull o)。

因此,它是表示关系的符号。

于 2012-02-06T18:48:08.620 回答
5

这是因为The Reasoned Schemer的作者希望 miniKanren 关系的表示法能够唤起普通的 Scheme 谓词,这些谓词按照惯例以?(例如,,null?)结尾pair?。上标o,如果你足够眯眼(并且之前听说过这个故事),看起来就像一个修改过的?.

于 2012-02-08T17:51:05.693 回答