Mathematicaプログラミング
■ 式
式の形式
Mathematicaではすべてのものは式として表現される。
式は以下のような形を取る。
ヘッド[式1, 式2, ...]
FullFormという関数を用いることで、 与えられた式のシンタックスシュガーを用いない 正式な形を得ることが出来る。
また、Headと言う関数を用いることで、 式のヘッドの部分を取り出すことが可能である。
In[1]:= FullForm[{1,2,3}]
Out[1]//FullForm= List[1, 2, 3]
In[2]:= Head[{1,2,3}]
Out[2]= List
In[3]:= FullForm[a+b*c]
Out[3]//FullForm= Plus[a, Times[b, c]]
In[4]:= Head[a+b*c]
Out[4]= Plus
リストを扱う関数の式への適用
MapやFoldなどのリストに対して処理を行う関数は リストだけでなく、様々な式に対して適用可能となっている。
リストはただ単に「List[...]」という形をとる 式でしかないためにある意味当然とも言える。
In[1]:= Map[(#*4)&, hoo[2,6,8]] Out[1]= hoo[8, 24, 32] In[2]:= foo[x, y, z][[2]] Out[2]= y
ヘッドの書き換え
「foo[1, 2, 3]」から「hoo[1, 2, 3]」へなどのように ヘッドを変更したい場合は以下のようにおこなう。
In[1]:= Apply[hoo, foo[1,2,3]] Out[1]= hoo[1, 2, 3]
Applyは「@@」によって表現可能であるため以下の様にしてもよい。
In[1]:= hoo @@ foo[1,2,3] Out[1]= hoo[1, 2, 3]