|
2.4.1 リストの構築
リストはMathematicaで広く使われており,構築方法もたくさんある.

明示的なリストの構築方法
これは2の最初の5つのベキ乗の表を与える.
In[1]:= Table[2^i, {i, 5}]
Out[1]= 
こうしても同じ結果が得られる.
In[2]:= Array[2^# &, 5]
Out[2]= 
これも同じようなリストになる.
In[3]:= NestList[2 #&, 1, 5]
Out[3]= 
SparseArrayを使うと,特定の位置における値が指定できる.
In[4]:= Normal[SparseArray[{3->x, 4->y}, 5]]
Out[4]= 
値の指定にはパターンを使うこともできる.
In[5]:= Normal[SparseArray[{i_ -> 2^i}, 5]]
Out[5]= 
予めリストの長さがどのくらいになるべきか,また各要素をどのように生成すべきかが分かることがしばしばある.

他のリストからのリストの構築
これは5よりも大きい要素を選び出す.
In[6]:= Select[{1, 3, 6, 8, 10}, # > 5&]
Out[6]= 
これは番号を持った部分を明示的に抽出する.
In[7]:= {a, b, c, d}[[{2, 1, 4}]]
Out[7]= 
プログラムの実行中,結果のリストを蓄積したいこともあるだろう.その際はSowとReapを使うとよい.

SowとReapを使う
このプログラムは数値を反復的に二乗する.
In[8]:= Nest[#^2&, 2, 5]
Out[8]= 
これも同じ計算をするが,途中結果を1000まで蓄積したリストを作る.
In[9]:= Reap[Nest[(If[# > 1000, Sow[#]]; #^2) &, 2, 6]]
Out[9]= 
これに代る,余り効果的ではない方法に,一時的な変数を導入してt =  から始め,連続的にAppendTo[t, elem]を使うものがある.
|