LISP关于创建新列表的简单问题

时间:2015-03-13 15:59:17

标签: lisp common-lisp

接收带有子列表的M * N的列表并返回子列表的所有元素的总和的函数

示例:(solution '( (1 2 3) (4 5 6) ) )

返回:(5 7 9)

为了糟糕的英语而烦恼 thks =)

2 个答案:

答案 0 :(得分:2)

Common Lisp版本与Scheme中的几乎相同:

(defun solution (list)
  (apply #'mapcar #'+ list))

(solution '((1 2 3) (9 10 11) (3 4 5)))
; ==> (13 16 19)

答案 1 :(得分:1)

这取决于你正在使用的Lisp解释器。在Scheme中,这将起作用:

(define (solution lsts)
  (apply map + lsts))

例如:

(solution '((1 2 3) (4 5 6)))
=> '(5 7 9)