ListsJ

print

リストと線形代数


CindyScript におけるリストの使いかた


リストは、CindyScript で最も基本的な概念の一つです。CindyScript では、リストはいくつかの目的で使われます。

  • オブジェクトを列記する
  • データの配列を構造化する
  • ベクトルを表す
  • 行列を表す

この節では、一般的なリストの作り方とともにそれらの要素へのアクセス方法について一般的なことがらを述べます。リストのそれぞれの側面については次の各節を参照してください。





リストの作成


リストは、カギカッコの中にコンマで区切って要素を並べるだけで簡単に作れます。たとえば

[45,12.5,123,2,5.5,5]

これは数のリストです。

["this", "is", "a", "list", "of", "strings"]

これは文字列のリストです。種類の異なるオブジェクトを混ぜてリストにすることもできます。

["this", 3,"is",5 , "a",654, "mixed",234 , "list"]

リストを要素にしたリストもできて、自由に入れ子(ネスト)にできます

[[4,6], ["a", "b"], 1, [4, "b", [23, "b"]], [ ]]

最後の要素 [ ] には何も入っていません。これは空リストです。

 要素の数が少なくとも2つあるならば、丸括弧 (...) でくくってリストにすることもできます。これは、数学でよく使われる形で記述するのに便利でしょう。たとえば、3次元ベクトルは次のように表現できます。

(7.3,9.3,-14.3)





リストの要素へのアクセス: take(<list>,<int>)



リストの各要素には、挿入演算子 <list>_<int> か、関数 take(<list>,<int>)を用いてアクセスできます。第2引数のインデックスは整数です。インデックスが0か、リストの要素数より大きいときは、___ が返されます。また、「Index out of range」という Warning メッセージが出ます。

式: 結果:
[2 ,5 ,7 ,3]_3 7
take([2 ,5 ,7 ,3],2) 5
[2 ,5 ,7 ,3]_5 ___


インデックスは計算式で与えることもできます。また、入れ子にしたリストの要素にもアクセスできます。

式: 結果:
[[2,[4,5]],1]_1 [2,[4,5]]
[[2,[4,5]],1]_(7-5) 1
[[2,[4,5]],1]_1_2 [4,5]
[[2,[4,5]],1]_1_2_2 5
[[2,[4,5]],1]_1_2_2_2 ___



リストが変数に代入されると、個々の要素は _ 演算子によってアクセスしたのち、それを設定することができます。たとえば次の例を見てください。

a=[[2,[4,5]],1];
a_2="A"; 
a_1_2_1="B"; 


この結果、 a[[2,["B",5]],"A"] になります。

高度な使用法

 リストの要素にアクセスするのに、強力なオプションがあります。負の数を使えば、末尾から逆順に数えてアクセスできるのです。次に示すのがその例です。:

式: 結果:
[2 ,5 ,7 ,3]_(-1) 3
take([2 ,5 ,7 ,3],(-3) 5
[[2,6] ,5 ,7 ,3]_(-4)_(-1) 6


 整数のリストを使って、まとめてアクセスすることもできます。すると、結果はリストで返されます。

式: 結果:
[2 ,5 ,7 ,3]_[2,3] [5,7]
[2 ,5 ,7 ,3]_[-1,1,1] [3,2,2]


Contributors to this page: Akira Iritani .
Page last modified on Wednesday 08 of April, 2015 [12:07:04 UTC] by Akira Iritani.

The content on this page is licensed under the terms of the License.


Menu