将列表作为输入参数传递给谓词来计算总和

时间:2015-02-09 19:49:50

标签: parameters prolog

正如标题所暗示的那样,它的宝贝在prolog的世界里为我迈进了一步。我将一个整数列表传递给谓词。然后将该列表传递给另一个谓词,该谓词计算并打印结果总和。这是我的代码:

solve_dots(boardSize, boardRowVals) :-
    sum(boardRowVals,Sum),
    write(Sum).

sum([],0).  
sum([X|Tail],Sum):-
    sum(Tail,Temp),
    Sum is Temp + X.

输入:

?- solve_dots(3,[0,2,1]).

在这种情况下,输出始终为false。但是,如果我运行下面的代码,它可以正常工作:

findsum(L) :-
    sum(L,Sum),
    write(Sum).

sum([],0).
sum([X|Tail],Sum):-
    sum(Tail,Temp),
    Sum is Temp + X.

我无法弄清楚我的输入究竟是做了什么错误使它变错了?

0 个答案:

没有答案