我想使用 Clojure 的 Core.logic。但是,我也想了解它是如何工作的。在某处是否有简明的解释?(比如实现一个元循环评估器?)
谢谢!
我想使用 Clojure 的 Core.logic。但是,我也想了解它是如何工作的。在某处是否有简明的解释?(比如实现一个元循环评估器?)
谢谢!
core.logic 是 miniKanren 的一个实现——最初由 Dan Friedman、William Byrd、Oleg Kiselyov 等人在 Scheme 中编写和设计。这是在 Lisp 中嵌入 Prolog 风格的关系编程的尝试。
如果您想了解它是如何工作的,您需要阅读 William Byrd 论文的前三章:https ://scholarworks.iu.edu/dspace/bitstream/handle/2022/8777/Byrd_indiana_0093A_10344.pdf?sequence=1
Reasoned Schemer 还详细介绍了统一器。然而,miniKanren 更微妙的目标部分没有得到全面的处理 - 你需要查看 Byrd 的论文。
即便如此,与元循环解释器一样 - 如果不尝试用各种编程语言自己实现系统,就无法获得许多见解。
您还可以从 Strange Loop 2012 中看到David 关于 core.logic 的演讲。
有关该主题的非常简单的介绍,另请参阅:sokuza-kanren