如果我有一个长度为M的N列表,我怎么能写一个漂亮的干净函数来返回长度为M的单个列表,其中每个元素是N个列表中相应元素的总和?
(开始学习口齿不清 - 变得简单!)
答案 0 :(得分:9)
这是map
和apply
函数的作业。这是一种方法,由Nathan Sanders建议 EDIT :
(define (add-lists . more)
(apply map + more))
答案 1 :(得分:2)
更像matlab的语法:
(define (piecewise func)
(lambda more
(apply map func more)))
(define pw piecewise)
((pw +) '(1 2 3 4 5) '(6 7 8 9 0))
((pw -) '(1 2 3 4 5) '(6 7 8 9 0))
((pw *) '(1 2 3 4 5) '(6 7 8 9 0))
((pw /) '(1 2 3 4 5) '(6 7 8 9 0.1))
输出:
(7 9 11 13 5)
(-5 -5 -5 -5 5)
(6 14 24 36 0)
(1/6 2/7 3/8 4/9 50.0)
答案 2 :(得分:2)
这只适用于麻省理工学院的计划。
(map + '(1 2 3) '(4 5 6) '(7 8 9))
;Value 28: (12 15 18)