arrays - 获取Scheme中向量的第一个元素

标签 arrays vector scheme

假设我在方案中创建了一个向量/数组:

(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/

相关文章:

c# - 在 c# asp.net 中向多维数组添加一个值

javascript - 如何使数组值和对象键值匹配(无论顺序如何)

c++ - 我的 C++ 程序正在打印地址而不是值

c++ - 提升 vector 序列化追加问题

algorithm - 为什么我的立方根算法是错误的? SICP 练习 1.8

arguments - 方案 - 可选参数和默认值

arrays - MongoDb 中的桶模式是处理大型无界数组的最佳方式吗?

c++ - 在大整数数组中查找子数组

c++ - “vector<int> Solution::primesum(int n)”是什么意思?

scheme - 句子输出是垂直的,每个单词之间有换行符