问题标签 [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.
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))?
后:
这完美地工作我所做的只是用我自己的整数除法版本替换“//”
prolog - 用 SICStus Prolog 概括斐波那契数列
我正在尝试为广义斐波那契数列 (GFS) 的查询找到解决方案。问题是:是否有任何 GFS 的第 12 个数字为 885?前 2 个数字可能被限制在 1 到 10 之间。
我已经找到了在从 (1, 1) 开始的序列中找到第 N 个数字的解决方案,其中我明确定义了初始数字。这就是我所拥有的:
对于提到的查询,我认为以下方法可以解决问题,其中我重用 fib 方法而不明确定义初始数字,因为现在需要动态完成:
...但这似乎不起作用。
以这种方式定义初始数字是不可能的,还是我做错了什么?我不是在寻求解决方案,但是任何可以帮助我解决此问题的建议将不胜感激。
dynamic - 将事实附加到现有的 prolog 文件中
我无法将事实插入现有的 Prolog 文件,而不会覆盖原始内容。
假设我有一个文件 test.pl:
如果我在序言中加载它,并且我断言更多事实:
我知道我可以通过以下方式保存它:
哪个有效,但 test.pl 现在只包含事实,而不是“:-动态出生/2”:
这是有问题的,因为如果我重新加载此文件,我将无法再将事实插入 test.pl,因为“:-动态出生/2”。不存在了。
我在某处读到,我可以这样做:
这应该只是附加到文件的末尾,但是,我收到以下错误:
顺便说一句,我正在使用 Sicstus prolog。这有什么不同吗?
谢谢!
eclipse - 使用 Sicstus 和 Eclipse (Spider) 的代码风格偏好
我目前在 Eclipse Galileo (Spider) 中使用 Sicstus Prolog VC9 4.1.1。我有一个非常新手的问题:我将如何自动控制缩进和一般代码样式偏好?
c# - 如何连接 C# 和 Sicstus prolog?
可能重复:
将 Prolog 与 C# 集成
我正在尝试将 prolog 项目与 C# 连接起来。我怎样才能做到这一点?
prolog - prolog存在错误:过程不存在
我已经包含了列表模块::- use_module(library(lists))。但仍然收到此错误..
有人可以帮忙吗?
sicstus-prolog - 在 SICStus Prolog 中限制运行时间
是否可以在 SICStus Prolog 中限制查询的运行时间?
prolog - 删除:序言
我正在尝试从解决约束满足问题的“计算智能书”中编译 csp.pl。我想以此为基础来解决填字游戏生成器。
但是当我尝试运行它给出的代码时
我认为 remove 不是内置谓词
这是代码的一部分......谁能帮我解决这个问题......代码应该执行,因为在教科书中它声称可以在某些程序上运行..
请帮忙
java - Java:创建键绑定以关闭正在运行的 Prolog 程序
我想用Java创建一个在后台运行的小程序,它检测按下的键的某种组合(在我的例子中是空格键),并且在得到一个空格键后,发送一个 ctrl+c 和一个到一个Prolog 控制台命令中止将要运行的 prolog 命令。那有可能做到吗?
提前非常感谢!
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 脚本引发上述错误?
我很感激你的时间。
安德烈亚斯