5

在 J 编程语言中如何进行数组访问?例如,使用 C++ 作为我的伪代码语言:

int M [100];  // declare an array called M
int j = 5;  //index into the array
int y = 10;  //value to store or load from the array

M[j] = y;  // store y into the array

y = M[j];  // load y from the array

在惯用的 J 中,这些类型的数组访问会是什么样子?

4

1 回答 1

7

在 J 中写这个的字面(但仍然很惯用)的方式如下。

m =: 100 $ 0   NB. This means create a 1d array consisting of 100 zeros.
j =: 5
y =: 10

完成初始化后,现在我们已经准备好回答的核心内容了,其中包括副词的两种不同用法}“Item Amend”和“Amend”)

m =: y j } m

将两个参数放在左边}会导致 J用 value替换j右边参数的第 th 个元素。注意:我们必须将结果分配回,因为结果只是计算一个新数组,其中包含您使用动词请求的更改。mymy j } m}

y =: j } m

仅将一个参数放在左侧}导致 J 摘录的j第一个元素m并返回它。在这种情况下,我们将 y 设置为结果。

于 2012-06-10T19:29:15.350 回答