问题标签 [successor-arithmetics]
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.
list - succ 没有在 pred 上被删除
到目前为止,我已经找到了这个解决方案:
但问题是 s(s(s(0))) 没有被 pred 函数减少。它导致 p(p(p(s(s(s(0))))))
你们能帮帮我吗?
prolog - 如何在 Prolog 中实现 Peano 数求幂?
我正在尝试使用下面的代码实现求幂,但是像 2^1 ( ex(s(s(0)), s(0), Z).
) 这样的简单查询会永远挂起。
prolog - 在 Prolog 中使用递归获取列表项的产品?
如何使用递归获得列表项的乘积?
如果我问:
结果应该是:
但我得到错误的结果。或者没有结果。
我试过了:
mul 是乘法,它工作正常。
如果我使用跟踪,我可以看到它找到了结果,但由于某种原因它失败了。
有人知道吗?
prolog - 如何知道Peano数是否为偶数
所以我很难和Peano一起尝试,我需要一些帮助。我想知道Peano数是否是偶数,如果是,则添加:
我到目前为止的代码:
prolog - 我正在尝试使用 DCG 创建一种语言 a^nb^n-1 c^n-2 但无法使 succ(0) 处理 n
好吧,很容易为每个规则使用 succ(0) 创建像 a^nb^nc^n 这样的语言,但是当涉及到改变 ab 和 c 的每个块的 n 时,它不起作用。
prolog - Prolog 第一个整数正好比第二个整数大 1
如果第一个整数正好比第二个整数大 1,程序应该返回 true。
当前代码每次都返回 false。
如果没有 abs(XY) == 1 行,它可以检查第二个整数是否大于第一个整数,但它应该检查差值是否正好为 1。
prolog - 判断一个数是否是另一个数的倍数
看下面的代码:
碰巧有什么不对劲。供您参考:
lt/2 是第一个参数是否小于第二个。
diff/3 是第三个参数是否等于第一个参数减去第二个参数。
lt/2 和 diff/3 定义正确。
定义是否存在逻辑错误?假设 0 是每个有问题的数字的倍数还是其他地方的逻辑错误?我得到了正确的答案,但我认为查询进入了无限循环。
编辑:
这是其他定义。
其中s(0)
是 1,s(s(0))
是 2 等等。它给出了 X 的所有所需答案,但在最后一个答案之后,它就卡住了。我假设在无限递归循环中?
prolog - 列出大小乘法
我是 Prolog 的新手,我正在努力了解列表。我正在努力解决的问题是:给定列表形式的数字(1:[x],3:[x,x,x]),实现'times'谓词/3。例如:次([x,x],[x,x,x],R)。R = [x, x, x, x, x, x]。
加号和后继谓词在哪里 2 以前的练习点。我知道我没有使用后继谓词,但后来它似乎没那么有用。
这是我迄今为止尝试过的
输出是:R 是 []。
prolog - (SWI-PL) 我不知道如何创建一个序言规则来匹配这种特定类型的输入
所以我有一个家庭作业,我给出了以下代码:
我要定义一个序言谓词 add2(X,Y,Z) ,它将产生例如以下输出
所以过去几天我一直在研究这个问题,并在解决方案上做出了合理的尝试。这是我到目前为止一直在尝试的:
现在,上面的代码对于提供的前 3 个输入非常有效。我很难考虑 prolog 如何解释最后一个,以及如何利用它。
这就是我认为可能有效的方法。
我的想法是,解释器会将诸如 succ(0+succ(...)) 之类的输入识别为 succ(A+B),然后上述规则将能够解析 0+succ(. ..) 进入 succ(...) 。我从 SWI-PL REPL 收到的输出很简单:
我进行的另一次尝试如下:
但是,这会产生与以前相同的输出。我不确定为什么上述两次尝试似乎对我不起作用,虽然我做了其他猜测,但上述两个或其他谓词或多或少有随机变化,如果我通过这种方法成功了,我会可能在不了解我在做什么的情况下获得了正确的答案。
我使用 SWI-PL 作为我的 prolog 发行版。
prolog - Prolog 前身数学
我有一个add2
谓词,它像这样解析ies(0)
的继承者在哪里0
1
ETC..
我正在尝试添加一个前任谓词,它将像这样工作
我似乎找不到办法做到这一点。我的代码如下。