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]