次のようなベクトルの変換に問題があります。
#(#(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))