1

我正在制作一个序言程序,我需要找出一个数字是偶数还是奇数。我正在尝试制作一个接受数字的谓词,对其进行修改,如果成功则为偶数,如果失败则为奇数。

我的代码如下所示:

modNum(num):-
    0 =:= mod(num, 2).

但即使我输入 6 也是错误的。如果我输入 3,则为假。我曾尝试在网上找到解决方案,但似乎没有一个答案与 mod 相关,所以我无法判断我是否在该部分做错了什么。

更新:我已将此功能更改为

modNum(num):-
    6 =:= 6.

它仍然失败。我不知道我的 mod 是否仍然不正确,但为什么我的谓词在 6 为 6 时失败,所以应该成功并打印 true。

4

1 回答 1

0

在 Prolog 中,变量名必须以大写字母开头。你写num的实际上是一个符号,而不是一个变量。比较以下典型代码:

loves(hans, lisa).
loves(lisa, spicy_food).

现在有了变量:

loves(Who, What) :-
    Who = hans,
    What = lisa.
于 2017-04-19T05:23:52.527 回答