gpt4 book ai didi

vector - Vector变换中的Scheme/Racket Vector

转载 作者:行者123 更新时间:2023-12-05 08:44:05 25 4
gpt4 key购买 nike

我在转换这样的向量时遇到问题:

#(#(1 2 3)#(1 2 3)#(1 2 3)#(1 2 3)#(1 2 3)))

变成这样:

#(#(1 1 1 1 1) #(2 2 2 2 2) #(3 3 3 3 3))

我写了一段测试代码但是输出是错误的。我进入调试器,我想我知道是哪一行代码导致了问题。我似乎无法找到让它工作的方法。任何帮助是极大的赞赏。

(define (test)
(let* ((table #(#(1 2 3)#(1 2 3)#(1 2 3)#(1 2 3)#(1 2 3)))
(counter 5)
(size 3)
(new-table (make-vector size (make-vector counter #f))))

(let loop ((sc 0)
(cc 0))
(when (not (= cc counter))
(if (not (= sc size))
(begin (vector-set! (vector-ref new-table sc) cc (vector-ref (vector-ref table cc) sc))
(loop (+ 1 sc) cc))
(loop 0 (+ 1 cc)))))
(display new-table)))

> (test)
#(#(3 3 3 3 3) #(3 3 3 3 3) #(3 3 3 3 3))

最佳答案

您还可以使用 vector-map 来获得所需的输出:

(define table #(#(1 2 3) #(1 2 3) #(1 2 3) #(1 2 3) #(1 2 3)))

(apply vector-map vector (vector->list table))

关于vector - Vector变换中的Scheme/Racket Vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641644/

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