関数の適用
複数の式に関数を適用したい場合がよくあります:
In[1]:=1

Map[f, {a, b, c, d}]
Out[1]=1

Pythonプログラマー向けの注意事項
Wolfram言語のMapはPythonのmapと同様に動作しますが,Mapは任意の深さの式の木構造にも作用するという点が異なります.
/@(「スラッシュアット」と読みます)はMapの短縮表記です:
In[2]:=2

f /@ {a, b, c, d}
Out[2]=2

Javaプログラマー向けの注意事項
Wolfram言語のMapはJavaのStream.mapメソッドと同様に動作しますが,Mapはどのような式にも適用できるという点が異なります.
以下では純関数を使っています:
In[3]:=3

{#, #} & /@ {a, b, c, d}
Out[3]=3

Applyを使うと,関数が要素全体に適用されます:
In[1]:=1

Apply[f, {a, b, c, d}]
Out[1]=1

Pythonプログラマー向けの注意事項
Wolfram言語のApplyはPythonのアンパック演算子*を使うのと同様です.
式には,部分を抽出するのに必要な指標の数に対応するレベルがあります.Mapのような関数は,特定のレベルに作用させることができます.
Javaプログラマー向けの注意事項
「レベル」とは配列の次元のことですが,記号式すべてに一般化されています.このような多次元演算はJavaには組み込まれておらず,通常ループが必要です.
Pythonプログラマー向けの注意事項
「レベル」とは配列の次元のことですが,記号式すべてに一般化されています.Pythonの配列関数は,通常一次元配列だけに対して設定されています.
Mapはデフォルトではレベル1に作用します:
In[1]:=1

Map[f, {{a, b}, {c, d}}]
Out[1]=1

これはレベル2にのみ作用します:
In[2]:=2

Map[f, {{a, b}, {c, d}}, {2}]
Out[2]=2
