问题标签 [failure-slice]
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 Fib/2 中的谓词总是说“超出本地堆栈”?
我写了一个谓词 fib/2 来计算 Prolog 中的斐波那契数。虽然它有效,但它总是说“超出本地堆栈”,错误看起来像:
我的谓词如下:
任何人都知道这是为什么以及如何解决它以获得以下内容::
提前致谢!
regex - 正则表达式匹配 Prolog
我正在尝试进行正则表达式匹配。我已经写出了所有功能,但它们没有按应有的方式工作。据我所知,当我尝试比较列表时出现问题。
例如,“re_contains(a,a)”。给出 true (显然),就像 "re_contains(union(a,b),a)" 一样。
但只要我把它列在清单上,它就失败了。“重新包含(序列(a,b),[a,b])。” 返回假。Append 应该通过所有可能的组合来找到匹配项,但是这些函数都不能正常工作。这让我觉得也许我错过了一个基本案例。但我认为“re_contains(X, L) :- X == L。” 应该照顾它。我必须在这里寻找一些重要的东西。
这是我的代码:
list - Prolog:检查两个列表是否具有相同的元素
我是 Prolog 的新手,在检查两个列表是否具有完全相同的元素时遇到问题。元素可能有不同的顺序。我有这个代码:
它的工作原理是
返回第一个结果后导致内存不足错误。因此,我尝试通过检查列表的长度是否相等并检查 H1 是否是 L2 的成员来缩小结果集:
现在两者
返回所有结果,但最后它们只是挂起。有一个更好的方法吗?
prolog - SWI Prolog 不会终止
为什么会?- is_fakt(X)
返回结果答案列表,但在获得多个结果答案后它会挂起。我不知道为什么 Prolog 不能返回 X 的所有可能值。
prolog - DCG 和左递归
我正在尝试实现一个 dcg,它采用 {a,b,c,d}* 形式的一组字符串。我遇到的问题是,如果我有一个形式为 s([a,c,b], []),它返回 true,这是正确的答案,但是当我有一个 s([a,c,f],[]) 形式的查询时,它不返回答案并且它用完了本地堆栈。
list - Prolog中的列表移位
以下代码导致无限循环,最终出现“Out of Local Stack”错误。基本上,我将 GX 的值递减,直到它与 MX 相同。样本输入 [[m,g,b],[w,w,w]],路径
因为它是一个 2d 数组,所以 append 将其转换为 1d 并且 NextCell 中的算术采用一行的长度并找到相邻单元格的坐标并返回该单元格的值。如果单元格是“w”或“b”,则幽灵不能朝那个方向移动。你可以假设地图是方形的!
prolog - 可逆树长关系
我正在尝试在“纯” Prolog 中编写可逆关系(不is
,剪切或类似的东西。是的,这是家庭作业),我必须承认我不知道如何。我没有看到任何创建这样的东西的过程。
我们得到了“不纯”但可逆的算术关系(add、mult、equal、less...),我们必须使用它来创建这些关系。
现在,我正在尝试通过创建关系来了解如何创建可逆函数,tree(List,Tree)
如果List
是二叉树的叶子列表,则该关系为真Tree
。
为了实现这样的事情,我试图创建当有叶子tree_size(Tree,N)
时为真的关系。这是我天真的、不可逆的关系:Tree
N
我可以做查询tree_len(some tree, N)
,但不能,说,tree_len(X,3)
所以它是不可逆的。到目前为止,我已经尝试了一些事情,但我必须承认我感到沮丧,因为我不知道在哪里寻找什么。实际上有办法做到这一点吗?
prolog - 递归谓词中的回溯
假设我们有以下谓词(这是Prolog中的一个示例):
查询的第一个结果是Integer(R),标记放在F0,会返回R=0
如果用户按下;,标记放置在F1,我们移动到子目标(isInteger(Y),满足F0)和R = 1。
我明白以上。现在这是我的问题:
- 如果用户按下;再次,标记在哪里?搜索如何继续返回 R=2?我试图理解这本书第 78-79 页中的图像,但我不清楚。我发现的在线教程在递归的情况下不处理回溯。
我正在寻找任何解释存在递归的回溯的教程,希望有帮助我理解的堆栈内容图像。
提前谢谢苏珊娜
prolog - prolog dcg 限制
我想用 DCGs 作为发电机。截至目前,语法是
我想生成所有s
长度a
为< someNumber
.
使用?- phrase(a,X),length(X,Y),Y<4.
i 可以得到 a
少于 4 个项目的所有项目。但是,当所有组合都用尽时,系统 (SWI-Prolog 6.2.5) 似乎停止运行。以前,这里也有人问过类似的问题。但是,作为 Prolog 的新手,我无法使其与上述语法一起使用。有任何想法吗?
更新:(canrememberthename)有一条评论被删除了,不知何故。无论如何,建议使用between(1,4,Y),length(X,Y),phrase(a,X).
设置限制。在将我的代码更改为之后,这很好用a-->c,a.
prolog - Prolog - 获取给定数字的因子不会停止?
我需要找到给定数字的因数,例如:
编码 :
但是当我运行时,divisors2(40,RR).
我得到了无限循环,屏幕上没有任何内容。
为什么 ?
问候