2013-02-22 59 views
2

我想實現一個功能列表的其中鈣總和的總和,它的名字是sum -計劃 - 列表

(define (sum elemList) 
    (if 
    (null? elemList) 
    (+ (car elemList) (sum (cdr elemList))) 
    0 
) 
) 

上述實施給出錯誤的結果,例如 -

> (sum (list 1 2 3 4)) 
0 

我在這裏做錯了什麼?

回答

6

我認爲你換了然後if其他部分:

(define (sum elemList) 
    (if 
    (null? elemList) 
    0 
    (+ (car elemList) (sum (cdr elemList))) 
) 
) 

在原有的功能,對於每一個非空列表,返回0

+2

而對於一個空列表,會產生一個錯誤,因爲它會嘗試將'car'和'cdr'作爲空列表。 – sepp2k 2013-02-22 08:40:45