我正在使用 prolog 编写类似于跳棋的棋盘游戏,我有这个 function 来测试随机生成的数字。 我希望它返回第一个有效的实例,但由于某种原因,它在找到它后失败了,因为它试图重做,我只能猜测是试图找到其他合适的解决方案。 我尝试使用跟踪进行调试,并验证了在 cell_status 以正确的 S ...
我正在使用 prolog 编写类似于跳棋的棋盘游戏,我有这个 function 来测试随机生成的数字。 我希望它返回第一个有效的实例,但由于某种原因,它在找到它后失败了,因为它试图重做,我只能猜测是试图找到其他合适的解决方案。 我尝试使用跟踪进行调试,并验证了在 cell_status 以正确的 S ...
赏金将在 5 天后到期。 此问题的答案有资格获得+500声望赏金。 repeat想要奖励现有的答案。 鉴于 SICStus Prolog 中的以下简约“求解器”... ...我观察到:残留的目标去哪了?! attribute_goal/2 put_atts/2不是撤消了吗? 编辑。 Thi ...
假设我在当前目录中有一个空文件(想象中称为empty )并运行以下查询。 使用 SICStus Prolog 4.7.1(英特尔 x86-64): 使用peek_char和get_char , stream 属性end_of_stream从not到at到past — 我明白了。 但是另一个peek_ ...
所以我在 prolog 中画了一个简单的 function 来计算矩阵中有多少个变量。 它是这样的: countOccur 似乎工作正常并返回正确的值。 问题是 countOccurences 返回正确的绝对值但为负。 我只是似乎不明白为什么会这样。 有人可以启发我吗? ...
这可能是一个愚蠢的问题,但有人可以解释如何在 Windows 上安装 Berkeley for SICstus 吗? 这是我最后的手段 ...
事实证明,SICStus Prolog 没有发生检查 Prolog 标志。 至少我们找不到,这里给出了一条错误消息: 似乎值“true”并不是什么问题,关键的统一可以通过现有的内置unify_with_occurs_check/2来实现。 发生检查 Prolog 标志的一个有趣值是值“错误”。 如何 ...
让我们假设 SICStus Prolog 是实现某些谓词的基准,甚至是 ISO 核心标准谓词。 特别是与属性变量有关。 然后我在这里找到这些例子。 它来自 SICStus 4 而不仅仅是 SICStus 3: 在 SWI-Prolog 中执行相同操作时,我会得到不同的结果: 如何在 SWI-Pro ...
我正在尝试对列表列表进行排序,例如Books=[[5,1,science,24,3,2018],[6,1,math,24,3,2019],[4,2,science,24,5,2019],[6,2,science,23,3,2019],[3,1,math,24,3,2020]] 。 我想根据每个元素的 ...
问题:用不接触或不重叠的正方形(任何大小)填充网格,即使在角落也是如此。 下方和右侧的数字表示填充在相应列/行中的网格方块的数量。 为了解决这个问题,我应用了以下约束:放置的正方形应该是不相交的,并且为了确保网格正方形的数量是正确的,我将与给定行/列相交的正方形的长度之和限制为等于该行/列号。 但是 ...
我想了解 SICStus 风格的可扩展统一。 关于library(atts)的用户手册指出: Module:verify_attributes(-Var, +Value, -Goals)挂钩 ... verify_attributes/3可以调用任意 Prolog 目标,但Var不应受其约束。 ...
浏览SICStus Prolog 用户手册我偶然发现了 Prolog 标志gc_tracing 。 我想知道更多,所以我从“图书索引”开始,找到了gc_trace的 3 个条目: G gc_trace(序言标志): ref-lps-flg gc_trace (prolog flag): re ...
SICStus Prolog 同时提供 current_predicate/1 和 current_predicate/2。 手册页指出: current_predicate(?PredSpec) 将 PredSpec 与 Name/Arity 形式的谓词规范统一起来。 current_p ...
我在玩序言协程谓词freeze/2和 freeze/ frozen/2 : sicstus-prolog (x86_64 版本 4.5.1)给出了以下答案:现在Goal = prolog:freeze(X, user:(a=a) )我没想到! 我所期望的是像swi-prolog 8.0.3 版给出 ...
在sicstus-prolog的黑客攻击clpz的背景下,我想瞥一下SICStus Prolog生成的warren-abstract-machine代码。 举个例子,让我们剖析下面的谓词! 这就是我现在正在做的事情: 将is_list/1的2个子句拆分为2个单独的谓词,并添加 ...
SICStus Prolog 4.5.1的执行分析器向我报告了以下内容: 出于好奇:什么是evaluate2/2 ,我如何找出Prolog代码的哪些部分调用它? (我最好的猜测是: evaluate/2和evaluate2/2评估算术表达式,当一些(is)/2个目标被编译时,它们仍 ...
可变术语的SICStus Prolog手册页指出: [...]统一两个mutable的效果是不确定的 。 那么,为什么create_mutable(data,x)会失败? 不应该提出一个uninstantiation_error吗? 当上述情况不是无意的编程错误( ...
SICStus Prolog 4.5.1的执行分析器给了我以下输出: 相当令人费解! 似乎3/4的工作(表中的第1列)是由于目标扩展。 但为什么? 如何本地化导致所有这些目标扩展的代码? 请帮忙! 编辑:新的分析结果 @ PerMildner的回答和评论指出了解 ...
属性变量允许扩展统一。 以下是关于界面的神秘细节。 让我们切入正确的追逐! 在sicstus-prolog库(atts)中提供了使用属性变量的谓词。 我想我得到了库(AT)的SICStus Prolog用户手册页面所说的内容,除了有关verify_attributes(-Var, + ...
问:我们怎样摆脱maplist开销,如SWI的apply_macros -in SICStus Prolog? 答:目标扩展。 首先,我们定义我们需要的辅助谓词。 在下面我们使用SICStus Prolog 4.5.0。 现在进行目标扩展: 到目前为止一切都很好; ...
我无法启动我的Sictus程序。 它显示一个错误 我也成功安装了Visual Studio 2012,但没有成功。 请帮助我运行该程序。 ...