自己看到 GitHub - mthom/scryer-prolog: A modern Prolog implementation written mostly in Rust.
想用这个学习 prolog
主要看到rust实现正常情况应该会比较高
(看到一些文章说,prolog 缺点就是有性能问题)
但自己在 mac 运行小程序,
不知道是我写的不对,还是用的不对,运行的命令有时会卡住
又去翻它的文档,却看它的文档说到 https://shenlanguage.org/ 语言
而我发现这个 shen 语言有 integrated fully functional Prolog
有点不务正业的想尝试
- 还有一小问题,不知道 miniKanren 在 prolog 中属于什么?
不管从生态还是性能还是可靠性 SWI-Prolog 是唯一的选择。 Comparison of Prolog implementations - Wikipedia
GNU Prolog 性能可以,但缺生态。XSB 性能相当,但连 ISO-Prolog 都不是。Prolog 生态的问题是各种库几乎没有能在不同实现通用的,哪怕都是 ISO-Prolog 也不一定能让库通用。
Scryer 连编译器都还没做出来,当然慢。
而 shen 用 community edition 比起 Prolog 只会更慢,官方实现要花钱买。
miniKanren 是一个没有完整编程语言功能的 DSL。除了一些最最简单的例子上和 Prolog 表现得差不多,本质上和 Prolog 是完全不一样的,一个最大区別是 miniKanren 里没有副作用,而写 Prolog 程序几乎离不开有副作用的 cut operator。
http://minikanren.org/minikanren-and-prolog.html
4 个赞