任务是计算从 0 到 M 的自然数之和。我使用 SWI-Prolog 编写了以下代码:
my_sum(From, To, _) :- From > To, !.
my_sum(From, To, S) :-
From = 0,
Next is 1,
S is 1,
my_sum(Next, To, S).
my_sum(From, To, S) :-
From > 0,
Next is From + 1,
S is S + Next,
my_sum(Next, To, S).
但是当我尝试计算时:
my_sum(0,10,S), writeln(S).
我得到了 False 而不是正确的数字。这个例子出了什么问题?