Prolog中的模数

时间:2014-09-25 07:04:35

标签: prolog

我正在尝试使用条件语句,如果N甚至做某事,否则做其他事情。 以下是我的代码的一部分:

(N,Lines,1):-write(N),nl,
(    mod(N,2) = 0 ->
 write('Hello'),nl,write('Again Hello')

;
    foo(N,Lines)

).

但是,即使我给N = 6,它也会进入foo(N,Lines),即其他部分。它不会进入部分。有人可以告诉我哪里错了吗?

1 个答案:

答案 0 :(得分:1)

而不是将其写为mod(N,2) = 0,而不是写0 is mod(N,2)0 =:= mod(N,2)(就像在评论中说的那样)

像:

write(N),nl,
(    0 is mod(N,2) ->
 write('Hello'),nl,write('Again Hello')
;
    foo(N,Lines)
).

如果N=6,就像你的例子一样,我得到:

6
Hello
Again Hello
true.

prolog算术here有一些例子。