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

0 投票
4 回答
5262 浏览

prolog - Prolog 寻路

如果我有以下谓词door,它声明两个房间之间有一扇门:

以及声明门状态的谓词doorstate :

如果两个房间之间的所有门都打开,则两个房间之间有一条通道。

我如何编写规则来发现两个房间之间是否有这样的路径?

0 投票
4 回答
4910 浏览

prolog - prolog 的独特结果

有没有一种简单的方法可以在 prolog 中进行查询,每个结果只返回一次?

例如我正在尝试类似的东西:

并得到

对我没用。

0 投票
6 回答
5301 浏览

sql - 序言到 SQL 转换器

不用多想,在我看来,一大组 Prolog 的功能可以实现为关系演算(又名 SQL)。

有没有人听说过任何工具可以自动将 Prolog 转换为 SQL?

0 投票
7 回答
8008 浏览

prolog - SML 是做什么用的?

SML在现实世界中的用途是什么?

它的实际用途是否与 Prolog 相似?

0 投票
2 回答
1442 浏览

prolog - Prolog 在哪里用于交通控制系统?

用户 Laurent 对这个问题 [为什么逻辑编程没有流行起来?] 有一个有趣的回答:

如果你看看逻辑编程在空中交通管制领域的影响,我认为不能说逻辑编程没有流行起来。

出现一个问题:

prolog 在哪里用于道路交通控制系统?为什么在这样的环境中使用它而不是 C 或 Python 等语言?

0 投票
2 回答
9794 浏览

prolog - 河内之塔谜题(序言)

每个人都知道著名的河内序言

你可以在这里找到

它很棒但是当我写这个查询时移动(3,左,右,中心)。

它没有显示这些结果

我得到的是

那么我怎样才能让它以更好的方式打印结果,并且是否可以命名磁盘,以便程序将它们命名给我,以显示结果如下“从左到右移动磁盘 A”

对不起,如果我问了很多,但上帝我喜欢 PROLOG。

0 投票
1 回答
2449 浏览

prolog - Prolog 运算符优先级和规则匹配

我在我的序言解释器中加载了接下来的两个事实:

现在我尝试使用该结果进行下一个查询:

现在我尝试下一个查询:

据我了解,这可以通过运算符优先级如何构建树表达式来解释:

这个解释正确吗?

0 投票
3 回答
10726 浏览

prolog - Prolog 中的广度优先

在 Prolog 中使用广度优先而不是默认的深度优先搜索方案的一般想法是什么?

不取无限分支?

在 Prolog 中有没有使用广度优先的一般方法?我一直在谷歌搜索,我没有找到太多对新手有用的信息。

0 投票
3 回答
6078 浏览

prolog - Prolog — 对称谓词

我必须在 prolog 中模拟家谱。我有对称谓词的问题。 事实:

规则:

blood_relation让我头疼。这就是我所做的:

我得到了我认为令人满意的结果(我有双重打印 - 我可以解决这个问题),问题是我希望这种关系是对称的。现在不是。

所以..有没有办法解决这个问题。我需要查询:所有不在血缘关系中的对..

更新:

第一个陈述应该满足什么样的关系?血液关系(X,Y):-血液关系(X,Y)。

对不起..这是一个糟糕的复制/粘贴..它

现在固定在上面。

以下是其他规则:

母亲的兄弟在叔叔的定义中。这有点奇怪。我有需要实施的规则,除此之外我不知道如何实施规则。我只是困惑。

知道如何制作blood_relation对称吗?并且not_blood_relation是新规则。我需要查询。这个真的让我很头疼。也许是因为关系写得像废话。

而且没有更多的事实。就这样。所有规则,所有事实。

查询..not(blood_relation(X,Y))不起作用,我真的不知道为什么。例如查询:

工作得很好

0 投票
1 回答
3458 浏览

artificial-intelligence - prolog sum & sub 使用后继者?

什么是使用后继的减法和求和,任何人都可以向我展示一个我知道如何以正常方式进行的示例。

/* sub(X, Y, Z) ---减法 */

子(X,Y,Z):-添加(Y,Z,X)。