dram.me

miniKanren学习

基于在Scheme中实现Prolog的讨论,开始学习miniKanren,虽然miniKanren的资料非常丰富,但入门的门槛依然有点高。可能是以下原因:

入门材料

以下是我整理的入门材料(前提是具备Scheme和Prolog基础):

陷阱

几个容易踩的坑:

  • 论文中的exist已经被替换为fresh,具体原因还有待研究;

  • 论文中通过文字排版简化了quote,在转化为代码时需要重新加上,可以参考交互教程;

  • run的结果(_.0)并非pair类型的(_ . 0),而是单元素_.0的列表。