【问题标题】:Mod or Predicate always failsMod 或 Predicate 总是失败
【发布时间】:2017-04-19 13:23:52
【问题描述】:

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

我的代码如下所示:

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

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

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

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

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

【问题讨论】:

    标签: prolog predicate mod


    【解决方案1】:

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

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

    现在有了变量:

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

    【讨论】:

      猜你喜欢
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多