展开讨论

经验与复盘经验摘录 · 机器翻译

我赞同 Sir Whinesalot 帖子中的建议(我还没有完全读完),建议看看……

我赞同 Sir Whinesalot 帖子中的建议(我还没有完全读完),建议看看 miniKanren 和 microKanren。几年前我将 microKanren 移植到 OCaml 时,发现这非常有教育意义,我认为结果比原始的 Scheme 版本更易理解,尽管你可能仍需要阅读论文才能理解它:http://canonical.org/~kragen/sw/dev3/mukanren.ml miniKanren 最令人惊讶的成果是一个你可以正向、反向或双向运行的 Scheme 解释器。http://webyrd.net/quines/quines.pdf 展示了如何用它生成一个 Scheme 自指程序,也就是运行时输出自身的 Scheme 程序(“miniKanren,现场且未标记:通过关系解释器生成自指程序(编程珠玑)”,Byrd、Holk 和 Friedman)。SICP 第 4.4 节 http://sarabander.github.io/sicp/html/4_002e4.xhtml 也有关于在 Scheme 中实现逻辑编程的非常易懂的示例。与该帖子不同,我认为 Datalog 不是寻找逻辑编程深层见解的地方。……

源讨论实现逻辑编程原帖 76 条评论 · 导入时统计
3

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 3

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

FC

我同意SICP 4.4非常容易理解。我曾经上过一门课,布置了一个简单的Prolog作业,我记得我们被给了建筑平面图,然后要编写一个在建筑中寻找路径的程序。我觉得这有点太简单了,我想深入研究,因为仅仅完成任务会让你觉得“这是魔法,只要使用这些咒语就可以了”。 我查看了如何实现Prolog,但一开始很困惑,直到我发现了SICP的这一节。 所以我把它移植到了JavaScript,并给了它一个类似Prolog的语法,还做了一个网页,你可以在上面运行作业,同时还能看到内部的运行机制,这对我来说是做过最棒的课程作业之一。

完整原文
SI

见解什么的算了吧,数据库连接才是关键 :P (感谢阅读这篇文章,我之前也实现过microKanren,真难以置信,只需要很少的代码就能实现一个完整的逻辑编程引擎)

完整原文
AN

在SICP中,https://t3x.org/amk/index.html 同样的方法。我认为这本书的旧版本是免费的,或者可能是关于Scheme本身的那本。 Scheme的自引用性让创建自指程序变得容易得多。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。