gpt4 book ai didi

arrays - 两个数组 LISP 的两个值之和

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

我有两个向量数组:

t1 (vector 1 2 3) 
t2 (vector 1 2 3 6 4)

我只想将 t1 的值与 t2 相加结果是这样的:

t2 (2 4 6 6 4)

首先我尝试这段代码:

(defun addition-v2 (t1 t2)
(if(< (length t1) (length t2))
(do ((x 0 (+ 1 x)))
((>= x (length t1)) t2)
(setf (aref t2 x) (+ (aref t1 x) (aref t2 x))))))

如你想象的结果是

#(2 4 6 6 4)

好的,但是如果 t1 的长度 > t2 的长度我该怎么办

最佳答案

由于您破坏性地更新了 t2,因此您可以使用 MAP-INTO

(defun addition-v2 (t1 t2)
(when (> (length t1) (length t2))
(rotatef t1 t2))
(map-into t2 #'+ t1 t2))

关于arrays - 两个数组 LISP 的两个值之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20562954/

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