Mod或Predicate总是失败

时间:2017-04-19 04:32:00

标签: prolog predicate mod

我正在制作一个prolog程序,我需要找出一个数字是偶数还是奇数。我试图创建一个带有数字的谓词,对它进行修改,如果它成功则是偶数,如果它失败则是奇怪的。

我的代码如下所示:

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

但即使我输入6,也是假的。如果我输入3,那就错了。我试过在网上找到一个解决方案,但没有一个答案似乎与mod有关,所以我不知道我是否在做错了。

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

现在有了变量:

loves(Who, What) :-
    Who = hans,
    What = lisa.