Mod 或者 Predicate 总是失败
Mod or Predicate always fails
我正在编写序言程序,我需要确定一个数是偶数还是奇数。我正在尝试制作一个接受数字的谓词,mods 它如果成功则为偶数,如果失败则为奇数。
我的代码如下所示:
modNum(num):-
0 =:= mod(num, 2).
但是即使我输入6也是假的。如果我输入 3,则为假。我曾尝试在网上找到解决方案,但 none 的答案似乎与 mod 有关,所以我无法判断我是否在该部分做错了。
更新:我已将此功能更改为
modNum(num):-
6 =:= 6.
它仍然失败。我不知道我的 mod 是否仍然不正确,但为什么当 6 为 6 时我的谓词失败,所以应该成功并打印 true。
在 Prolog 中,变量名必须以大写字母开头。你写的num
其实是一个符号,不是变量。比较以下典型代码:
loves(hans, lisa).
loves(lisa, spicy_food).
现在有了变量:
loves(Who, What) :-
Who = hans,
What = lisa.
我正在编写序言程序,我需要确定一个数是偶数还是奇数。我正在尝试制作一个接受数字的谓词,mods 它如果成功则为偶数,如果失败则为奇数。
我的代码如下所示:
modNum(num):-
0 =:= mod(num, 2).
但是即使我输入6也是假的。如果我输入 3,则为假。我曾尝试在网上找到解决方案,但 none 的答案似乎与 mod 有关,所以我无法判断我是否在该部分做错了。
更新:我已将此功能更改为
modNum(num):-
6 =:= 6.
它仍然失败。我不知道我的 mod 是否仍然不正确,但为什么当 6 为 6 时我的谓词失败,所以应该成功并打印 true。
在 Prolog 中,变量名必须以大写字母开头。你写的num
其实是一个符号,不是变量。比较以下典型代码:
loves(hans, lisa).
loves(lisa, spicy_food).
现在有了变量:
loves(Who, What) :-
Who = hans,
What = lisa.