15得票3回答
SWI Prolog如何更改工作目录/获取当前工作目录?

在SWI Prolog终端中,如何查看当前工作目录并更改当前工作目录? 我找到了以下代码: working_directory(CWD, CWD) 但我认为这不是我需要的。

12得票2回答
Prolog:编写一个打印“Hello World”的过程

我想将这个简单的东西加载到我的编辑器中:Write:-repeat,write("hi"),nl,fail. 怎样才能使它打印“hi”? 我目前正在尝试进行文件->新建操作 并将文件保存在E:\Program Files\pl\xpce\prolog\lib中命名为Write 执行...

12得票4回答
Prolog - 从文件中读取输入的DCG解析器

作为一个项目的一部分,我需要编写一个解析器,可以读取文件并将其解析成我可以在程序中使用的事实。 文件结构如下: property = { el1 , el2 , ... }. 我希望最终的目标是: property(el1). property(el2). ... 我这样读取...

12得票2回答
Prolog有包管理器吗?

我想知道与其他程序员(以及在多个项目之间)共享Prolog代码/库的最佳实践是什么。 我自己使用SWI-Prolog,但也对其他Prolog如何处理此问题感兴趣。与Java的Maven+JARs、Python的EasyInstall+PythonEggs相比,其他语言可能也有很多类似的解决方案...

11得票4回答
有没有一个可以绘制Prolog查询搜索树的程序?

我想知道是否存在一种工具,可以绘制Prolog程序的逐步搜索树?谢谢。

11得票4回答
SWI-Prolog中的谓词聚合

我需要计算所有满足some_predicate(X)的X数量,这样的X非常多。 最好的方法是什么? 第一个线索是使用findall,将结果累积到列表中并返回列表的长度。countAllStuff( X ) :- findall( Y , permutation( ...

11得票2回答
关闭swi-prolog中的警告提示

我如何关闭swi-prolog中的警告?Clauses of XXX/AA are not together in the source-file 非常令人讨厌。

10得票1回答
SWI Prolog与GNU Prolog - SWI下的CLP(FD)问题

我在Prolog中编写了一个快速谓词,尝试使用CLP(FD)及其解决方程组的能力。problem(A, B) :- A-B #= 320, A #= 21*B. 当我在SWI中调用它时,我会得到:?- problem(A,B). 320+B#=A, 21*B#=A. 然而在GN...

10得票1回答
如何使用SWI-Prolog的语义网络库查询RDF/OWL?

如何使用SWI-Prolog语义Web库查询OWL/RDF文件并提取信息? OWL/RDF文件包含所有Debian软件包的信息,因此我需要进行查询以查找软件包依赖关系。 例如: OWL文件的结构如下:package: A Depends: package: B pacakge: C...

10得票4回答
Prolog - 使用DCGs处理二进制数据

在我看来,使用DCGs处理字节列表中的二进制数据应该是可行的。然而为了使其通用,必须使用位运算符,这意味着需要使用 is/2,这也意味着实例化顺序是一个问题,这可能会使DCGs在解析和生成时变得混乱。这里的想法是序列化/反序列化二进制数据,但我认为这个示例足够简单,可以说明问题。 让我用一些...