问题标签 [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 投票
5 回答
25600 浏览

swi-prolog - SWI-Prolog - 显示长列表

我正在使用 SWI-Prolog 并且我正在尝试打印一个列表,但如果该列表有超过 9 个项目 - 它看起来像这样 -

有没有办法显示整个列表?

0 投票
2 回答
1609 浏览

prolog - Predsort/3 像 msort/2

我想知道是否可以在predsort/3不丢失重复值的情况下使用?如果不是,那我应该如何对这个术语列表进行排序?

当前排序功能:

结果:

你看,那个术语n(8,0,9)已经消失了,这不是我需要的。

0 投票
1 回答
1456 浏览

file - 如何在 SWI Prolog 中读取文件?

我想读取一个包含每行名称的文件。而且我不知道如何使用 SWI Prolog 做到这一点。我对 C/C++ 有足够的了解,那么有什么方法可以对 Prolog 做同样的事情吗?

0 投票
1 回答
437 浏览

prolog - 使用 :- 模块导出谓词

我知道我可以使用标准声明导出模块的谓词:

但是想知道是否有另一种方法可以在模块 my_test 中导出谓词 hello?在下面的示例中,我需要填写什么代码才能使 my_export 指令为我执行此操作?

我无法完全弄清楚导入/导出,但这些是我能想出的唯一真正的方法。

0 投票
2 回答
384 浏览

prolog - Prolog 读取复合术语并将其视为表达式

以下代码不起作用

但以下是

这是为什么?似乎“读取”功能无法正常工作

0 投票
1 回答
505 浏览

swi-prolog - why result didn't show in my swi- prolog editor?

this is my editor . what is the problem?why the result didn't show (in this picture must show X=a , Y=b,c)?
http://i.imgur.com/LwweM.png?

0 投票
1 回答
413 浏览

c++ - 在 SWI Prolog 中统一动态谓词

我正在从 C++ dll 调用 SWI Prolog 引擎,我希望能够访问所有断言/动态谓词(类似于列表通常所做的)。

在 GNU Prolog 中,我会用变量调用 dynamic/1 谓词,Prolog 会将它与所有动态谓词指示符统一起来。在下一步中,我将使用变量调用这些谓词并获得完整列表。

不幸的是,我不能在 SWI Prolog 中做到这一点(错误:参数没有充分实例化)。还有其他方法吗?

0 投票
1 回答
634 浏览

sparql - 在 SWI-Prolog 中,在 OWL 本体上执行 SPARQL 查询

在从 OWL/RDF 文件加载本体之后,我想知道如何在 SWI-Prolog 中执行 SPARQL 查询。

我发现可以通过 sparql_query/3 执行查询,但它需要一个服务器。

0 投票
1 回答
358 浏览

c++ - DSO 中的 SIGSEGV,混合 C/C++

我正在使用 C++ 的 SWI-Prolog外语界面,试图集成一些其他资源。

它主要是有效的,但是任何抛出异常的尝试都会导致 SIGSEGV。异常通常用于验证用户参数,因此是接口的基本部分。

我正在从源代码(通过提供的脚本)编译 SWI-Prolog,并且 CXX 标志是

我正在使用相同的标志来编译我的 C++ 代码,该代码组装在一个 .so 中,在 SWI-Prolog 中动态加载(我认为是通过 dlopen)。

在 SEGV 在 __cxa_allocate_exception 内的 <+36> 处显示 IP 之后检查堆栈(通过 GDB)。可能无法访问 __cxa_get_globals@plt。

我能找到的唯一资源似乎是相关的主张

异常需要 typeinfo 查找

这可能对 SIGSEGV 有意义。

但我现在无法继续。当然,我希望在一些神奇的 CXX 或 LD 标志。或者我应该装饰我的库入口点(我熟悉 Windows declspec,我广泛使用它们来构建 MFC 扩展 DLL)或其他什么?

0 投票
2 回答
2143 浏览

c++ - Linux g++ 在 C++ 中嵌入 Prolog 逻辑引擎

我在 C++ 程序中有一些逻辑,它不仅非常复杂,而且需要多种解决方案,Prolog 是理想的解决方案。它有点像防火墙配置脚本,检查动作的输入,但有时需要不止一个动作。

我想要的是这样的:

它不需要回调到 C++ 的能力。

AMI Prolog 似乎得到了它,但它在 Linux 上不可用。我正在尝试使用 SWI-Prolog,但只能找到 2 个示例和令人难以置信的拜占庭 API(我的观点)

谁能指出一个与我正在寻找的例子相近的例子?