编写Scheme函数(sumList)

时间:2015-12-27 21:25:36

标签: racket

编写一个Scheme函数(sumList),它返回列表中应作为参数传递的所有数字的总和。该列表可以包含数字,非数字符号和其他列表。您的函数应该选择子列表中的所有数字并将它们添加到总数中。如果列表为空,您可以假设总数为0。用法示例:

  

(sumList'((1 2 3)5 a(10)())   21

1 个答案:

答案 0 :(得分:0)

(define (sumList lst)
  (cond   
    ([empty? lst] 
        0)
    ([list? (car lst)]
        (+ (sumList (car lst)) (sumList (cdr lst))))
    ((not(number? (car lst)))
        (sumList (cdr lst)))
    (else 
        (+ (car lst)(sumList (cdr lst))))))