我正在制作一个Prolog程序,我需要找出一个数字是偶数还是奇怪。我正在尝试制作一个数字,修改它的谓词,如果成功的话,如果失败了,那是奇怪的。
我的代码看起来像这样:
modNum(num):-
0 =:= mod(num, 2).
但是,即使我输入6,也是错误的。如果我输入3,那是错误的。我尝试在网上找到解决方案,但似乎没有任何答案与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.