在Scheme中获取vector中的第一个元素

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这似乎不起作用.

Ósc*_*pez 7

表达式(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)

在前面的表达式中,v0我们想要检索其元素的向量和索引.请查看文档以获取有关上述过程的更详细说明.