4 prolog
我正在尝试使用条件语句,如果 N 甚至做某事,否则做其他事情。这是我正在执行此操作的代码的一部分:
(N,Lines,1):-write(N),nl,
( mod(N,2) = 0 ->
write('Hello'),nl,write('Again Hello')
;
foo(N,Lines)
).
Run Code Online (Sandbox Code Playgroud)
但即使我给 N=6 它也会进入foo(N,Lines)ie else 部分。它不会进入 if 部分。有人可以告诉我哪里错了吗?
而不是将其写为mod(N,2) = 0write0 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)
).
Run Code Online (Sandbox Code Playgroud)
如果N=6,就像你的例子一样,我得到:
6
Hello
Again Hello
true.
Run Code Online (Sandbox Code Playgroud)
这里有一些关于 prolog 算术的例子。