了解 Mini-Kanren 的执行模型
Posted
技术标签:
【中文标题】了解 Mini-Kanren 的执行模型【英文标题】:Understanding Mini-Kanren's Execution Model 【发布时间】:2012-04-24 11:41:37 【问题描述】:SICP 的第 5 章解释了寄存器机器的元循环评估器实习生方案。
在 Scheme 原语方面,有什么东西可以提供类似类型的 Mini-Kanren 吗?
我知道有一篇关于 Mini-Kanren 的论文(但是,我只关心构建一个心智模型;而不是所有血淋淋的优化细节)。我也知道有理性的计划者——但是,我不是在寻找一堆例子——我只是想以非常非常基本的形式理解 Mini-kanren,就像人们如何理解方案一样理解:eval、apply、if、set!、env
谢谢!
【问题讨论】:
here is The Reasoned Schemer 的 18 行 Haskell 实现(没有统一和逻辑变量)。 【参考方案1】:我认为阅读 The Reasoned Schemer 实际上是学习基础知识的正确方法。您也可以尝试观看来自 Clojure Conj 的 Dan Friedman 和 William Byrd 的 miniKanren talk。
由于miniKanren总共只有seven forms,了解基本形式实际上就是了解整个事情。该实现仅涉及a page 的宏,因此您可以尝试理解这一点。您也可以尝试阅读 William Byrd 的 PhD thesis 的介绍性部分。
【讨论】:
很遗憾,谈话的链接已关闭。 好像是这样。其他 miniKanren 讲座的链接可在此处获得:minikanren.org【参考方案2】:在The Reasoned Schemer 一书中,有一个基于Scheme 的非常简单的逻辑系统的实现。它是自成一体的,理解它的唯一需要就是书本身,以该系列中其他书籍的风格,它非常容易理解。
【讨论】:
以上是关于了解 Mini-Kanren 的执行模型的主要内容,如果未能解决你的问题,请参考以下文章