假设我在 Scheme 中创建了一个向量/数组:
(let* ((x #(1 2 3)))
(list-ref x 0)) ; returns error
我可以使用什么语法或函数代替该 list-ref 来获取1
?
编辑:我将 Script-Fu 与 GIMP 2.8 一起使用,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
查看文档以获取对上述过程的更详细说明。