最近想学一些 prolog,不知道有没有高性能的实现?

自己看到 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 个赞

推荐 SWI-Prolog

社区很友好,也很活跃

太清楚了,补丁