方案:如何将带有cons的列表更改为向量?

gn6*_*n66 2 scheme racket

如何更改用cons向量制作的列表?

((p b p b p b p b)
 (b p b p b p b p)
 (p b p b p b p b)
 (b p b p b p b p)
 (p b p b p b p b)
 (b p b p b p b p)
 (p b p b p b p b)
 (b p b p b p b p))
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

(define b "black")
(define w "white")

(define (board)
  (letrec ((ti
            (lambda (x)
          (if (eq? x 8) '()
          (cons (lh x 0) (ti (+ 1 x))))))
       (lh
        (lambda (x y)
          (if (eq? y 8) '()
          (cons (if (odd? (+ x y)) 'b 'w) (lh x (+ 1 y)))))))
    (ti 0)))

sep*_*p2k 5

使用list->vector整个列表上的功能,然后使用每个子列表vector-map.

或者首先使用map以应用于list->vector每个子列表,然后list->vector在整个列表中使用.

  • @Chris:我仍然在两个地方使用`list-> vector`.唯一的区别是一个版本使用`map`并且`map`在里面而另一个版本使用`vector-map`并且它在外面.在这两种情况下,`map` /`vector-map`的参数是`list-> vector`.虽然不可否认`map`的类型比`vector-map`更少,所以这是选择该版本的一个原因. (2认同)