Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Scheme中获取向量中的第一个元素_Arrays_Vector_Scheme - Fatal编程技术网

Arrays 在Scheme中获取向量中的第一个元素

Arrays 在Scheme中获取向量中的第一个元素,arrays,vector,scheme,Arrays,Vector,Scheme,假设我在Scheme中创建了一个向量/数组: (let* ((x #(1 2 3))) (list-ref x 0)) ; returns error 我可以使用什么语法或函数来代替列表引用来获取1 编辑:我在GIMP 2.8中使用脚本Fu,其中array ref似乎不起作用 为此,您可以使用向量ref。例如: (vector-ref x 0) 是指向R5RS规范向量部分的链接,该部分提供了更多信息。表达式(定义v'#(1 2 3))是创建新向量的缩写,在标准方案中,它等效于: (de

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

(let* ((x #(1 2 3)))
  (list-ref x 0)) ; returns error 
我可以使用什么语法或函数来代替列表引用来获取
1


编辑:我在GIMP 2.8中使用脚本Fu,其中
array ref
似乎不起作用

为此,您可以使用
向量ref
。例如:

(vector-ref x 0)
是指向R5RS规范向量部分的链接,该部分提供了更多信息。

表达式
(定义v'#(1 2 3))
是创建新向量的缩写,在标准方案中,它等效于:

(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
是我们要检索其元素的索引。有关上述步骤的更详细说明,请参阅。

尝试
vector ref
。。。(例如)哦,哇。这是我应该能弄明白的。这会很挑剔,但当你提到“标准方案”时,这种挑剔是有道理的。。。至少在R5R及以上版本中,未指定
#(…)
。相反,你应该引用它:
”#(…)
。(这与
()
不是
'()
的有效速记类似),而且由于它被引用,所以这种文字和构造新向量的表达式之间通常存在区别。