问题标签 [sicstus-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 回答
9071 浏览

prolog - Prolog中的整数除法运算符

这段代码是我正在编写的程序的一部分,用于解决 prolog 中的一个密码谜题。我正在使用 CLPFD (SICStus Prolog) 解决这个问题。使用内置整数除法运算符“//”时出现错误(有关详细信息,请参见下文)。我无法解决这个问题所以我编写了自己的整数除法函数。

我想知道的是为什么“//”失败了。其他算术运算符(如 +、-、/)没有这样的问题

前:

这是我得到的错误

错误:域错误:clpfd_expression' expected, found(0+_G1592+_G1586)//10' 异常:(12) throw(error(domain_error(clpfd_expression, (0+_G3994{0..9}+_G3991{0..9})// 10),_G3976))?

后:

这完美地工作我所做的只是用我自己的整数除法版本替换“//”

0 投票
6 回答
1337 浏览

prolog - 用 SICStus Prolog 概括斐波那契数列

我正在尝试为广义斐波那契数列 (GFS) 的查询找到解决方案。问题是:是否有任何 GFS 的第 12 个数字为 885?前 2 个数字可能被限制在 1 到 10 之间。

我已经找到了在从 (1, 1) 开始的序列中找到第 N 个数字的解决方案,其中我明确定义了初始数字。这就是我所拥有的:

对于提到的查询,我认为以下方法可以解决问题,其中我重用 fib 方法而不明确定义初始数字,因为现在需要动态完成:

...但这似乎不起作用。

以这种方式定义初始数字是不可能的,还是我做错了什么?我不是在寻求解决方案,但是任何可以帮助我解决此问题的建议将不胜感激。

0 投票
1 回答
3888 浏览

dynamic - 将事实附加到现有的 prolog 文件中

我无法将事实插入现有的 Prolog 文件,而不会覆盖原始内容。

假设我有一个文件 test.pl:

如果我在序言中加载它,并且我断言更多事实:

我知道我可以通过以下方式保存它:

哪个有效,但 test.pl 现在只包含事实,而不是“:-动态出生/2”:

这是有问题的,因为如果我重新加载此文件,我将无法再将事实插入 test.pl,因为“:-动态出生/2”。不存在了。

我在某处读到,我可以这样做:

这应该只是附加到文件的末尾,但是,我收到以下错误:

顺便说一句,我正在使用 Sicstus prolog。这有什么不同吗?

谢谢!

0 投票
2 回答
170 浏览

eclipse - 使用 Sicstus 和 Eclipse (Spider) 的代码风格偏好

我目前在 Eclipse Galileo (Spider) 中使用 Sicstus Prolog VC9 4.1.1。我有一个非常新手的问题:我将如何自动控制缩进和一般代码样式偏好?

0 投票
0 回答
155 浏览

c# - 如何连接 C# 和 Sicstus prolog?

可能重复:
将 Prolog 与 C# 集成

我正在尝试将 prolog 项目与 C# 连接起来。我怎样才能做到这一点?

0 投票
1 回答
6944 浏览

prolog - prolog存在错误:过程不存在

我已经包含了列表模块::- use_module(library(lists))。但仍然收到此错误..

有人可以帮忙吗?

0 投票
1 回答
105 浏览

sicstus-prolog - 在 SICStus Prolog 中限制运行时间

是否可以在 SICStus Prolog 中限制查询的运行时间?

0 投票
2 回答
711 浏览

prolog - 删除:序言

我正在尝试从解决约束满足问题的“计算智能书”中编译 csp.pl。我想以此为基础来解决填字游戏生成器。

但是当我尝试运行它给出的代码时

我认为 remove 不是内置谓词

这是代码的一部分......谁能帮我解决这个问题......代码应该执行,因为在教科书中它声称可以在某些程序上运行..

请帮忙

0 投票
1 回答
205 浏览

java - Java:创建键绑定以关闭正在运行的 Prolog 程序

我想用Java创建一个在后台运行的小程序,它检测按下的键的某种组合(在我的例子中是空格键),并且在得到一个空格键后,发送一个 ctrl+c 和一个到一个Prolog 控制台命令中止将要运行的 prolog 命令。那有可能做到吗?

提前非常感谢!

0 投票
1 回答
469 浏览

shell - 通过 shell 文件运行 Prolog Sicstus

我一直在尝试通过 shell 脚本运行文件并将其输出写入该文件。

脚本非常简单:

/usr/local/sicstus4.1.1/bin/sicstus -l run --goal "runh('examples/calls_matlab.pl', S), 停止。" > "/Users/Andrew/Dropbox/IP/建模阶段/rules.txt"

但是,当我运行它时,它失败并出现以下错误: sicstus(24883,0x7fff70916ca0) malloc: * 对象 0x10082b408 的错误:已释放对象的校验和不正确 - 对象在被释放后可能已被修改。*在 malloc_error_break 中设置断点进行调试

另一方面,如果我从目标中删除“停止”,一切都很好,但 Sicstus 仍在运行。

有没有办法退出 sicstus,而不必通过我的 shell 脚本引发上述错误?

我很感激你的时间。

安德烈亚斯