prolog - 未定义过程 s/1 谓词

标签 prolog

我正在参加初学者序言类(class)。我们应该使用 swi-prolog,这是我的说法

% library(swi_hooks) compiled into pce_swi_hooks 0.00 sec, 3,856 bytes
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 5.10.4)

我们被要求开发算术谓词 add(X,Y,Z)。使用后继 s(X) [= X+1] 仿函数。该谓词在我的计算机上失败并出现以下错误:

ERROR: toplevel: Undefined procedure: s/1 (DWIM could not correct goal)

有人有解决办法吗?也许我必须降级我的 swipl?

谢谢!

最佳答案

你的SWI-Prolog没问题,但你误解了任务。您必须编写 add/3 的定义,使用 Peano 表示形式代替通常的数字,例如,2 变为 s(s(0))。您可以搜索类似的问题,例如我answered帮助理解您所面临的相同上下文中实际的 Prolog 执行情况。

关于prolog - 未定义过程 s/1 谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15634746/

相关文章:

git - Gist.github 序言语法高亮

Prolog 错误 : `character' expected, 发现 `"((.).)"' (字符串)

list - Prolog 列表未在控制台上打印所有元素

prolog - 列表中的唯一元素(Prolog)

list - 如何向 Prolog 指定列表的所有元素必须为 1 或 0?

prolog - "Who is the barber"Prolog 中的逻辑谜题

prolog - 在 prolog xpce 中显示单选按钮

prolog - 获取谓词执行时间(以秒为单位)

algorithm - 如何让这个序言代码在合理的时间内运行?

java - 如何从 Java 使用 Prolog?