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

Posted

技术标签:

【中文标题】为啥 miniKanren 的名字总是以 `o` 结尾?【英文标题】:Why do miniKanren names always end with `o`?为什么 miniKanren 的名字总是以 `o` 结尾? 【发布时间】:2012-02-28 03:51:08 【问题描述】:

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

【问题讨论】:

【参考方案1】:

理性的计划者的序言中,他们是这样解释的:

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

所以,它是一种表示关系的符号。

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于为啥 miniKanren 的名字总是以 `o` 结尾?的主要内容,如果未能解决你的问题,请参考以下文章

图 DB 与 Prolog(或 miniKanren)

阐明不同 minikanren 实现中的搜索算法

miniKanren:如何定义#s和#u?

MiniKanren 有“非”运算符吗?

使用 clojure 的 core.logic / minikanren 查找相似的集合

为啥文本总是以画布为中心