问题标签 [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.
swi-prolog - SWI-Prolog - 显示长列表
我正在使用 SWI-Prolog 并且我正在尝试打印一个列表,但如果该列表有超过 9 个项目 - 它看起来像这样 -
有没有办法显示整个列表?
prolog - Predsort/3 像 msort/2
我想知道是否可以在predsort/3
不丢失重复值的情况下使用?如果不是,那我应该如何对这个术语列表进行排序?
当前排序功能:
结果:
你看,那个术语n(8,0,9)
已经消失了,这不是我需要的。
file - 如何在 SWI Prolog 中读取文件?
我想读取一个包含每行名称的文件。而且我不知道如何使用 SWI Prolog 做到这一点。我对 C/C++ 有足够的了解,那么有什么方法可以对 Prolog 做同样的事情吗?
prolog - 使用 :- 模块导出谓词
我知道我可以使用标准声明导出模块的谓词:
但是想知道是否有另一种方法可以在模块 my_test 中导出谓词 hello?在下面的示例中,我需要填写什么代码才能使 my_export 指令为我执行此操作?
我无法完全弄清楚导入/导出,但这些是我能想出的唯一真正的方法。
prolog - Prolog 读取复合术语并将其视为表达式
以下代码不起作用
但以下是
这是为什么?似乎“读取”功能无法正常工作
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?
c++ - 在 SWI Prolog 中统一动态谓词
我正在从 C++ dll 调用 SWI Prolog 引擎,我希望能够访问所有断言/动态谓词(类似于列表通常所做的)。
在 GNU Prolog 中,我会用变量调用 dynamic/1 谓词,Prolog 会将它与所有动态谓词指示符统一起来。在下一步中,我将使用变量调用这些谓词并获得完整列表。
不幸的是,我不能在 SWI Prolog 中做到这一点(错误:参数没有充分实例化)。还有其他方法吗?
sparql - 在 SWI-Prolog 中,在 OWL 本体上执行 SPARQL 查询
在从 OWL/RDF 文件加载本体之后,我想知道如何在 SWI-Prolog 中执行 SPARQL 查询。
我发现可以通过 sparql_query/3 执行查询,但它需要一个服务器。
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)或其他什么?
c++ - Linux g++ 在 C++ 中嵌入 Prolog 逻辑引擎
我在 C++ 程序中有一些逻辑,它不仅非常复杂,而且需要多种解决方案,Prolog 是理想的解决方案。它有点像防火墙配置脚本,检查动作的输入,但有时需要不止一个动作。
我想要的是这样的:
它不需要回调到 C++ 的能力。
AMI Prolog 似乎得到了它,但它在 Linux 上不可用。我正在尝试使用 SWI-Prolog,但只能找到 2 个示例和令人难以置信的拜占庭 API(我的观点)
谁能指出一个与我正在寻找的例子相近的例子?