问题标签 [swi-prolog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8271 浏览

java - 如何在 Windows 上使用 JPL(双向 Java/Prolog 接口)?

我对在 Java 中嵌入 Prolog 解释器很感兴趣。一种选择是使用JPL,但 JPL 站点上的下载链接已损坏,并且安装页面提到了我找不到的 jpl.zip。我下载了似乎包含 JPL 的 SWI-Prolog(它在安装时将其列为组件),但我仍然不确定如何将它与 Java 一起使用。

关于如何在 Windows 上使用 JPL 的任何想法?我可以使用另一个库来实现相同的目标吗?我遇到过一些,但它们似乎不如 JPL 稳定。

0 投票
1 回答
369 浏览

java - 在 jpl 中调用列表函数

我想知道是否有人设法使用了“列表”。JPL 中的命令来检查 Prolog 知识库的内容?JPL 要求您构建查询,并将根据您在查询中设置的变量返回解决方案。例如(Java):

我看不出这对于listing/0 或什至需要实例化输入的listing/1 是如何工作的。目前我正在玩形式的代码

它返回知识库中存在的函数:

答案:

但这还不够,因为没有返回任何目标。我想我需要的是一个函数(如果不能使用 JPL 调用列表函数),它作为变量返回谓词头以及必须满足的相关目标列表。不幸的是,我不熟悉列表功能的内部结构,所以我不确定如何去做。

提前致谢

0 投票
2 回答
4364 浏览

character-encoding - prolog中是否有字母字符检查?

问候,

我可以在序言中使用测试或谓词来验证某个给定字符是否按字母顺序排列?现在,我正在做的是:

非法字符列表:\n -> 10, 空格 -> 32, !->33, .->46, ,->44, :->58, ;->59% % 63->? , 45 -> -, 34->", 39-> %

这些只是我需要检查的几个字符。进行诸如字母(Ch)之类的测试。会为我节省大量时间,最重要的是这是一种更具防御性的方法。

谢谢

0 投票
1 回答
5728 浏览

prolog - 在 Prolog 中读取字符串(从文件中)

我在 Prolog 中编写了一个词法分析器和一个解析器。它将字符串与其 AST 统一起来。这是我正在处理的编译器/解释器项目的一部分。自然,我现在想从文件中读取字符串来解析它。但是,我为此找到的谓词是read,它只读取 Prolog 原子和谓词,如文件

我一直在玩弄double_quotes设置,但没有成功。

我希望能够读取这样的文件

然后将此字符串发送到解析谓词。

0 投票
1 回答
210 浏览

mysql - mysql 连接在 3000+ 次尝试后失败

我只是在 Prolog 中测试一个小脚本来健全地检查 MySQL 连接。在建立大约 3000 多个连接后,连接随机失败。MySQL 服务器对连接数是否有任何限制

0 投票
1 回答
2873 浏览

java - 如何将我的 Java UI 连接到 JPL Prolog 应用程序?

我正在使用SWI-Prolog提供的JPL在 Java 中编写一个应用程序,以从 Java 调用 Prolog。

我使用 Eclipse 作为 IDE。我不知道如何开始我在网上找到的这个例子:

这里的java代码:

如果我直接从 Prolog 运行 Prolog 程序,它可以正常工作,并且当我从 Java 应用程序调用它时也一样。

我还可以在 Eclipse 控制台中看到输出,并且可以回答问题。

但是我想为用户和系统之间的交互构建一个Java UI,但是我不知道如何从Java中的Prolog中获取代码并将其放入UI中。

例如,如何从 Java UI 捕获输入并将其传递给 Prolog 代码?

0 投票
1 回答
337 浏览

prolog - Prolog 列表中的两颗星

列表中的两颗星是什么?

我尝试搜索但没有成功。

0 投票
3 回答
1111 浏览

linux - Prolog - 特别是 SWI - pl 在哪里?

我正在尝试使用 interprolog 和 SWI prolog 建立一个环境,interprolog 需要 swi 的“pl”的位置,但我找不到它。我能找到的只是 swipl 或 plrc 并且不能与 interprolog 一起使用。如果我在终端中输入 pl(这应该运行 swi-prolog),它会说

但如果我输入

或者

序言

它运行 swiprolog 很好。

问题是 interprolog 需要 pl,我似乎找不到。

有人知道我该如何解决这个问题吗?

谢谢

0 投票
2 回答
14160 浏览

random - Prolog 中的随机项

我知道我可以X is random(10).得到一个从 0 到 10 的随机数,但是有没有类似的命令来得到一个随机匹配的项目?

0 投票
1 回答
1447 浏览

visual-studio-2008 - 从 VS2008 解决方案文件中查阅 Prolog 源代码

我有一个 Prolog 文件 (Hanoi.pl),其中包含解决 Hanoi Towers 谜题的代码:

我还有一个用 VS2008 IDE 编写的 C++ 文件:

如何从我的 C++ 代码中查阅我的 Prolog 源代码 (Hanoi.pl)?不是来自命令提示符 - 来自代码,比如包含、咨询或编译?它与我的 cpp 文件位于同一文件夹中。

谢谢,