计划清单的总和

Ser*_*rge 2 scheme racket

我是函数式编程和方案语言的初学者.

我找到了一种建立列表总和的方法:

(define (sum lst)
  (if (empty? lst)
      0
      (+ (car lst) (sum (cdr lst)))))

(sum (list 1 2 3))
Run Code Online (Sandbox Code Playgroud)

我的问题是:有没有办法建立一个列表的总和没有像sum这样的额外函数,只需使用"+"函数,如下所示:

(+ 1 2 3)
Run Code Online (Sandbox Code Playgroud)

rsm*_*rsm 5

您可以apply列出函数的参数.所以在这种情况下你可以:

> (apply + (list 1 2 3))
6
Run Code Online (Sandbox Code Playgroud)