问题标签 [prolog-dif]

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 投票
5 回答
408 浏览

list - 在序言的列表中删除该值和该值的所有重复项

我在从序言中的列表中删除值时遇到了一些麻烦。我有一个颜色列表,我想向其中添加一个颜色列表,并保留所有没有重复的值并删除其余的值。

所以紫色在这个列表中出现了两次,我想删除它们。这是我想要返回的列表。

我目前有这个来删除所有重复的,但我不能把两个紫色都去掉。

这是我现在得到的结果:

0 投票
3 回答
512 浏览

list - 从列表中删除重复项,同时保留最右边的出现

我试图从列表中删除重复项,同时保留最右边的出现。例如:[1,2,3,1,2]转换为[3,1,2] 这是我在 Prolog 中的第一次尝试,我不明白我做错了什么。它总是返回假。这是我的代码:

0 投票
2 回答
415 浏览

prolog - 如何正确表达序言中的不等式?

TL;DR: sibling(a,X)答案成功X = a,但sibling(a,a)失败。


我有以下 Prolog 文件:

对我来说似乎很清楚,如果他们的父母相同,两个人就是兄弟姐妹。此外,一个人不是他们自己的兄弟姐妹。

但是当我尝试在 GNU Prolog 上运行一些查询时,我得到了一些奇怪的结果:

这是预期的行为。a并且b是兄弟姐妹。有三个结果,这有点奇怪,但我假设 Prolog 是绑定的A = c, B = d,并且A = d, B = c.

我认为这意味着a并且a不是兄弟姐妹。

这就是我卡住的地方:它说X = a,这意味着sibling(a,a)是真的,但在前面的查询中sibling(a,a) 失败了!

我觉得我不了解\==Prolog 中的实际作用。

发生了什么,我该如何解决?

0 投票
4 回答
671 浏览

list - Splitting list in prolog based on condition

I have a list

My objective is to split it into

the predicate i have implemented so far

Sorry for the noob question learning prolog.

0 投票
3 回答
861 浏览

prolog - Prolog 规则中目标(语句)的顺序

我最近开始研究 Prolog,遇到了一个奇怪的问题。在这里,您可以看到一个代码示例(我使用SWI-Prolog 7.2.3),它给出了关系树和我对 2 个任务的解决方案。

当我想找到戴夫的亲戚时,我会:

然后我改变了我对下一个相对的定义:

我只是在最后一个语句中更改了目标的顺序。现在我有以下输出:

我在输出中看到了戴夫!这怎么发生的?我写了 X \== Y... 谁能给我一个很好的解释?

还有一个问题。如何让我的程序不写相同的答案?

谢谢!

0 投票
3 回答
74 浏览

list - Prolog - 检查出现次数未按预期工作

在 Prolog 中:我有以下函数来计算列表中某个元素的出现次数:

我测试了它,它运行良好。但是问题来了,我有另一个函数必须检查“1”在列表中出现的次数是否少于 2 次。

例如,每当我尝试检查列表[1,1,1,1]时,我得到的结果都是“真”,这是错误的,我不知道为什么。我试图进行一些更改,但该功能不起作用。

0 投票
1 回答
222 浏览

list - 填充仅出现一次的多个列表元素的列表

我是 Prolog 的新手,我正在努力理解它。

我从一些简单的程序开始,这个程序应该:

  • 检查一个元素是否包含在列表的其余部分中
    • 如果 FALSE 什么都不做
    • 如果 TRUE 将其添加到第二个列表。(只有一次出现的 char 应该添加到第二个列表中)。

一些具有预期结果的示例:

这是我写的代码,但我有一些问题(它总是返回true)。

我尝试使用调试器,发现not(member(X,Y))is alwaysfalse并且在绑定部分只有XandXs和 never Y。非常感谢任何建议!谢谢你。

更新

我想我解决了,代码如下:

但我不太确定为什么它现在可以工作......在第 3 次occ我改变了_Ywith [].. 但为什么它会改变结果?

0 投票
1 回答
156 浏览

list - Prolog not_member 不做它的工作

我在这里有一个 Prolog 问题,我试图将独特的机场加入列表,但我的谓词没有按预期工作。

具有预期答案的示例查询:

如果您需要事实让我知道,我们将不胜感激。谢谢!

0 投票
2 回答
690 浏览

prolog - 当两个人有相同的爱好时 Prolog 谓词返回 true

我想写一个 Prolog 谓词,当两个人有相同的爱好时返回 true,而不使用否定。我有以下数据库:

我想出了以下谓词:

X然而,这个谓词在equals时也是正确的Y,我不希望这样。谁能帮我找到解决方案?一个小的解释也将不胜感激。

0 投票
2 回答
245 浏览

prolog - 为什么这个 prolog 程序返回 false?

当我运行以下查询时,我没想到会失败(但还是得到了它)。

为什么我会看到这种行为?