gpt4 book ai didi

nested - Lisp:添加列表列表的各个元素

转载 作者:太空宇宙 更新时间:2023-11-03 18:49:08 25 4
gpt4 key购买 nike

假设我有一个列表:

((1 2 3) (8 4 7) (41 79 30) (0 8 5))

我想这样做:

(1+8+41+0 2+4+79+8 3+7+30+5) = (50 93 45)

我找到了一个丑陋的解决方案:

(defun nested+ (lst)
(let ((acc nil))
(dotimes (i (length (first lst)))
(push (apply #'+ (mapcar #'(lambda (a) (nth i a)) lst)) acc))
(reverse acc)))

它似乎符合我的目的,但我想它很慢而且不流畅。什么是正确的方法?

最佳答案

一个选项是(apply #'mapcar #'+ list)。 Mapcar 将消耗您提供的尽可能多的列表,并在到达最短列表的末尾时停止。

关于nested - Lisp:添加列表列表的各个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52593622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com