【发布时间】:2020-06-16 20:21:50
【问题描述】:
如果在 Prolog 中这样定义整数:
nat(0).
nat(s(X)) :- nat(X).
如何将这样的数字转换为十进制数?
输入例如:
s(s(s(0)))
我可能应该补充一点,我对 Prolog 很陌生。
编辑: 我是这样尝试的:
nat(0).
nat(s(X)) :- nat(X).
convert(N, C) :-
C is C + 1,
nat(N),
convert(N, C).
【问题讨论】:
-
你尝试了什么?什么不工作?
-
我添加了我的一项尝试。
-
我想要的是一个“正常”的数字表示,比如 0, 1, 2, 3, ... 以便将其用作索引或能够使用比较。
-
Prolog 不是 C,C = C +1 由于统一,在 Prolog 中总是失败。您必须使用另一个名称 C1 is C + 1 例如
标签: prolog successor-arithmetics