2012-05-21 26 views
5

Jプログラミング言語の配列アクセスはどのように行いますか?たとえば、擬似コード言語としてC++を使用すると、次のようになります。Jプログラミング言語での配列言語

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のように見えますか?

+1

[RosettaCode](http://rosettacode.org/wiki/Arrays#J)は、このタイプの比較のためのより良いフォーラムかもしれません。 – Tikkanz

答えて

7

Jでこれを書くにはリテラル(でもかなり慣れています)の方法は次のようになります。道のうち、その初期設定では

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

、今、私たちはthe } adverb ("Item Amend" and "Amend")の2さまざまな用途で構成されて答え、の肉のための準備が整いました。 }の左に二つの引数を置く

m =: y j } m 

は、Jが値yで右手引数mj番目の要素を交換する原因となります。注:y j } mの結果は、}動詞を使用して要求した変更を組み込んだ新しい配列を計算するだけだったので、結果をmに戻す必要がありました。 }の左に一つだけの引数を置く

y =: j } m 

mj番目の要素を抜粋し、それを返すためにJが発生します。この場合、yを結果に設定します。

+0

上記の改正は、「適所に」実行されることに注意してください。 Jは、新しい配列が同じ名前に割り当てられていることを認識し、変更を新しい配列に書き込むだけです。 http://jsoftware.com/jwiki/Essays/In-Place%20Operationsを参照してください。私の経験では、二項動詞http://jsoftware.com/help/dictionary/d520.htmより{{}は配列から項目を取り出すためによく使われます。 – Tikkanz

+0

非常に良い点、@ Tikkanz。そして、あなたの編集の訂正に感謝します。 – sblom

+0

OMG!私は '}'が1つの左引数の特徴を持っているかどうか分かりませんでした!私はちょうど定期的な '{'を使用します... – MPelletier

関連する問題