wec*_*sam 3 arrays scheme vector
假设我在Scheme中创建了一个向量/数组:
(let* ((x #(1 2 3)))
(list-ref x 0)) ; returns error
Run Code Online (Sandbox Code Playgroud)
我可以在list-ref的位置使用什么语法或函数1?
编辑:我正在使用Script-Fu和GIMP 2.8,array-ref这似乎不起作用.
表达式(define v #(1 2 3))是创建新向量的简写,在标准Scheme中它等效于:
(define v (list->vector '(1 2 3)))
Run Code Online (Sandbox Code Playgroud)
或这个:
(define v (make-vector 3))
(vector-set! v 0 1)
(vector-set! v 1 2)
(vector-set! v 2 3)
Run Code Online (Sandbox Code Playgroud)
一旦创建了一个向量(使用任何提到的过程),访问向量中元素的正确方法是通过调用vector-ref过程 - 显然,因为它是一个向量而不是元素列表:
(vector-ref v 0)
Run Code Online (Sandbox Code Playgroud)
在前面的表达式中,v是0我们想要检索其元素的向量和索引.请查看文档以获取有关上述过程的更详细说明.