如何检查数字是否为偶数?

时间:2019-05-09 23:56:20

标签: prolog

我有一个谓词检查偶数。但是,当我执行查询时,它总是返回false。我是prolog的新手,对此行为我感到很困惑

Even(N):- N mod 2 = 0. 

更新: 如果我将其更改为Even(N):- 0 is N mod 2.,则它可以工作。为什么会这样?

1 个答案:

答案 0 :(得分:1)

您没有使用适当的运算符,并且有一些错字!首先,谓词的名称以小写字母(even代替Even开头)。相等比较的运算符是=:=(您正在使用=来实现统一!和is来将值应用于变量。尽管您的权利是0 is 0偶数并在此处起作用,但在某些情况下会失败。请参见here了解更多信息。

even(N):- mod(N,2) =:= 0.