【问题标题】:LISP Easy questio about creating new listsLISP 关于创建新列表的简单问题
【发布时间】:2015-05-16 04:52:00
【问题描述】:

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

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

返回:(5 7 9)

抱歉英语不好 谢谢=)

【问题讨论】:

    标签: lisp common-lisp


    【解决方案1】:

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

    (defun solution (list)
      (apply #'mapcar #'+ list))
    
    (solution '((1 2 3) (9 10 11) (3 4 5)))
    ; ==> (13 16 19)
    

    【讨论】:

    • @LuísTiago:你已经成功地打破了关于在这个网站上提问的几乎所有准则,你仍然得到了很好的答案。至少有礼貌地接受它并给予回答者他们所获得的信用。 stackoverflow.com/help
    【解决方案2】:

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

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

    例如:

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

    【讨论】:

    • 我正在使用 LispWorks,但它不起作用。它必须类似于 (defun solution (lista) ...
    猜你喜欢
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    相关资源
    最近更新 更多