假设我在方案中创建了一个向量/数组:
(let* ((x #(1 2 3)))
(list-ref x 0)) ; returns error
我可以使用什么语法或函数来代替该列表引用来获取 1
?
编辑:我在 GIMP 2.8 中使用 Script-Fu,其中 array-ref
似乎不起作用。
最佳答案
表达式(define v '#(1 2 3))
是创建新向量的简写,在标准Scheme中它相当于:
(define v (list->vector '(1 2 3)))
或者这个:
(define v (make-vector 3))
(vector-set! v 0 1)
(vector-set! v 1 2)
(vector-set! v 2 3)
创建向量后(使用任何上述过程),访问向量中的元素的正确方法是调用 vector-ref
过程 - 显然,因为它是一个 向量而不是元素的列表:
(vector-ref v 0)
在前面的表达式中,v
是向量,0
是我们要检索其元素的索引。看看documentation有关上述过程的更详细说明。
关于arrays - 获取Scheme中向量的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11163558/