问题标签 [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.

0 投票
1 回答
286 浏览

prolog - 序言:试图解决一个难题!返回假

我帖子末尾的代码应该回答以下难题:

布朗、克拉克、琼斯和史密斯是 4 位重要的公民,他们以建筑师、银行家、医生和律师的身份为社区服务,尽管不一定分别。布朗比琼斯更保守,但比史密斯更自由,他的高尔夫球手比比他年轻的男人更好,收入也比比克拉克大的男人高。比建筑师挣得多的银行家既不是最年轻的,也不是最年长的。

打高尔夫球比律师差的医生,也没有建筑师那么保守。不出所料,最年长的人最保守,收入最高,最年轻的人是最好的高尔夫球手。每个人的职业是什么?

代码:

但是,当我运行它时,它返回 false!

有人可以帮我吗?

0 投票
1 回答
1402 浏览

prolog - 魔方 NxN

我是 Prolog 的新手,我正在尝试编写完全工作的幻方程序,但说实话我真的不知道该怎么做,我已经开始了,但我觉得我做错了。我正在分享我的代码,我希望有人能帮助我,现在当数字很好时,我得到了正确的结果,但是当它们不是时,我会像堆栈错误一样......(这里只是检查我所知道的行和列倾斜检查)感谢您的关注!

0 投票
1 回答
2546 浏览

list - 删除序言中的重复项

我对 prolog 还很陌生,目前正在阅读一本书,该书为我提供了代码练习示例。它要求我删除重复项。

注意:我已阅读其他 stackoverflows,并且我了解如何删除重复项,但我不明白为什么我的代码无法正常工作。(我为其他 stackoverflows 选择了不同的方法)

我创建了一个 is_member 谓词,我认为它可以正常工作。

然后我的 remove_duplicates 谓词

在我看来这是有道理的,它检查 Head 是否是 tail 的成员,如果是,它不会将其添加到 Without 列表中,

否则它会。

我显然在这里遗漏了一些微不足道的东西,

提前致谢

0 投票
1 回答
1583 浏览

prolog - Prolog:超出本地堆栈错误

考虑以下代码(取自RP Suri的 Prolog 简介):

现在如果我查询

我得到的输出为:

(这是正确的输出),之后程序停止,几秒钟后我收到消息:

当我查询时会发生类似的事情

这应该不会返回任何内容,但提示会再次消失几秒钟,然后出现相同的错误消息。代码中的问题是什么?

0 投票
2 回答
141 浏览

prolog - Prolog 无缘无故地从本地堆栈中引发

我正在尝试在 Prolog中实现Levenshtein 距离。

实现非常简单:

但是,此代码失败并出现此错误:

SWIPLMac OS X Sierra.

0 投票
1 回答
132 浏览

prolog - STRIPS Planner 无限循环

我在 Prolog 中定义了一个 STRIPS Planner 来解决逻辑问题。在对其他更简单的问题进行了几次尝试后,我开始看看它是否可以解决更复杂的问题。我给了他一个 STRIPS 对 peg solitaire 的定义,英文版,考虑到我们不能做对角线移动,最后一个球会落在棋盘的中央,然后尝试了一下,程序进入了循环。这是问题所在: https ://en.wikipedia.org/wiki/Peg_solitaire

这是我的解决方案:

我尝试通过只做一两个动作来简化目标,这适用于一个动作,并且当两个动作不相互矛盾时,例如将弹珠移过已经移动的弹珠,通过两个动作进入循环当他们这样做时,就像所说的目标一样:

objectivos([球(4,5),空(3,5),空(5,5),空(6,5)])。

我已经尝试过跟踪和调试,但我似乎找不到问题,尽管我相信它位于问题的制定中,而不是 Planner 本身。有任何想法吗?

0 投票
1 回答
651 浏览

prolog - Prolog阶乘谓词

我有一个阶乘谓词fact(N,F),其中一个NF两个都绑定到一个数字。

例如,我可以拥有fact(3,F)fact(N,6)。这是我的谓词,它有效,但我不太明白如何。我用过trace,但理解起来还是有问题。

0 投票
1 回答
838 浏览

prolog - Prolog:检查简单事实的传递性

我的目的是在 Prolog 中实现一个简单的传递性示例(仅针对我自己)。

这些是我的事实:

我写了这个谓词来检查是否A信任C,只要有一个B信任CA信任这个的,这就是真的B

谓词例如返回truetrusts(p1, p2)trusts(p1, p5)trusts(p5, p6)已经返回ERROR: Out of local stack

Prolog 会这么快地淹没堆栈吗?

还是我的想法/实施trusts不良/浪费系统内存?

0 投票
3 回答
713 浏览

prolog - Prolog 出栈错误

我正在处理99 Prolog Problems中的第 26 题:

P26 (**) 生成从列表的 N 个元素中选择的 K 个不同对象的组合

例子:

所以我的程序是:

我的查询结果开始正常,但随后返回全局堆栈错误:

我不明白为什么它一开始可以工作,但后来挂起,直到它给出全局堆栈错误。发生在终端的 SWISH 和 swi-prolog 上。

0 投票
1 回答
148 浏览

prolog - 了解 Prolog 中的递归性

我有这个例子:

它很好用,我理解。这是一个小练习的解决方案。我的解决方案是相同的,但正在改变:

下降(X,Y):-下降(X,Z),下降(Z,Y)。

也就是说,在第二条规则中改变childfor 。descenddescend

如果我descend(X, Y).在第一个解决方案中查询,我会得到:

哪个是对的。但是,如果我使用相同的解决方案进行查询,我会得到:

它没有说X = bridget,Y = donna ;,它也溢出。我明白为什么它会溢出。我不明白的是为什么它没有找到最后的关系。是因为溢出吗?如果是这样,为什么?(为什么知识库这么小,堆栈那么大?)。

如果我查询descend(bridget, donna)它的答案yes

我在想象探索树时遇到问题......

除了那个问题,我猜原来的解决方案效率更高(忽略我的最后进入无限循环的事实),不是吗?

谢谢!