问题标签 [prolog-toplevel]

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 投票
2 回答
10757 浏览

prolog - 让 Prolog 返回一个解决方案并停止显示查询选项

我是 prolog 的新手,正在尝试如何让它在找到一个答案后停止查询。我正在使用这段代码:

结果是:

我不知道如何让 Prolog 停止打印“true”?而是打印“是”。我试过使用 if/else 构造和格式函数,但它仍然打印“true?”。有任何想法吗?

0 投票
1 回答
111 浏览

swi-prolog - 来自顶层的 Shell 命令

显然,我可以使用顶层的一些 shell 命令,

其他有效的是ls, cd。知道这些记录在哪里,或者还有什么其他的吗?

(这是在 Linux 上,无法检查它是否也适用于 Windows)。

0 投票
3 回答
1904 浏览

prolog - Prolog 回溯寻找解决方案并返回 False

我正在对 Prolog 进行破解(使用 SWI-Prolog),一切都按我的意愿进行,即逻辑计算正确,它找到了正确的解决方案,但整个回溯的事情让我很困惑。

这是代码:

很基础的东西。这是我的查询结果:

正如您从注释 1 和 2 中看到的那样,它等待我点击;继续,然后将第一个解决方案视为 null 并最终输出 false。

我可以使用削减来更好地控制这种行为,但我也希望以下命令能够正常工作:

和:

这两个命令完全按照我想要的方式给出了解决方案。它只是注释 1 和注释 2 的那些让我陷入困境。tall(X).有没有一种方法可以让and的功能保持现在的list_all_tall.状态,同时根据我的喜好修复tall(a).and的功能tall(b).,即true.在我询问tall(a).或之后程序应该以 a 退出tall(b).

如果不是直接给出答案,而是有人可以实际解释我如何自己修复它,我将不胜感激,因为也许我在 Prolog 中的思维方式是完全不同的。

PS:没有针对高、瘦、胖、吃汉堡、玩电子游戏、素食者的冒犯。

0 投票
4 回答
1493 浏览

prolog - 自动显示结果?

如何使 SWI-Prolog 解释器自动执行分号?由于回溯,我有很多结果(大约 300 个),我不想为所有结果添加分号。

我不想要所有解决方案的列表,我只想不按分号或空格,这样我就可以让程序在后台打印回溯的解决方案。

0 投票
1 回答
2154 浏览

prolog - Prolog:停止条件?

这是一个非常简单的 Prolog 知识库:

我运行了以下查询。请注意,有时答案是正确的名称(仅),但有时答案是正确的名称和“假”。

有人可以解释这种看似不一致的行为吗?提前致谢。

0 投票
3 回答
520 浏览

prolog - Prolog中析取的交换性

刚开始学习Prolog,遇到一个不懂的问题。当我问:

序言回答:

这是我所期望的。但是,如果我问:

序言回答:

..我不明白为什么。析取运算符应该是可交换的。为什么这两个 Prolog 答案不同?

0 投票
1 回答
1111 浏览

prolog - 在第一个答案之后,Prolog 显示错误“char_code/2:由于 'character_code' 而无法表示”

在正常情况下,如果有的话,我们可以";"用来显示下一个答案。
但如果我这样做,它会告诉我

而不是";", 我使用"shift + ;", prolog 给了我一个提示

然后如果我输入";",可设计的答案将一一显示。

问题是什么?

0 投票
0 回答
101 浏览

prolog - SWI-Prolog 未标记超过 9 个变量

我想要 10 个带有约束的变量,但 Prolog 只标记 9。这是我的代码:

注意: 它适用于ins 1..99 个变量。

0 投票
2 回答
604 浏览

prolog - SWI-Prolog 中的问号 - 非确定性函子

我刚刚尝试在 Prolog 中实现绝对功能,但我遇到了一些奇怪的行为。我的代码是:

当我在 SWI-Prolog 中尝试时,absval(-2,X).我得到了

正如预期的那样。但否则,当我调用时absval(2,X),我得到X = 2 ?并且我应该插入另一个输入。按回车后我也得到了yes

第二个结果是什么意思?我的解决方案有什么问题?

0 投票
1 回答
633 浏览

prolog - 序言变量

当我们谈论匿名变量时,我有一个小问题。例如,当我们这样做时:

但我的问题是关于变量 X。它有 '_' 吗?