为什么miniKanren的名字总是以`o`结尾?

时间:2012-02-06 17:05:39

标签: clojure scheme logic minikanren

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

2 个答案:

答案 0 :(得分:11)

The Reasoned Schemer 的前言中,他们解释了这一点:

  

一个关系,一个返回一个目标作为其值的函数,以一个上标“ o ”结束其名称(例如, car o null o )。

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

答案 1 :(得分:5)

这是因为 The Reasoned Schemer 的作者希望miniKanren关系的符号能够唤起以?结尾的普通Scheme谓词(例如null?,{{ 1}})按惯例。上标 o ,如果你眯眼(并且之前听过这个故事),看起来像是修改过的pair?