Mathematicaの特殊・省略記法一覧

Mathematicaの省略記法はドキュメントやヘルプで調べにくいのでまとめてみる。

関数適用

@ (前置記法)

f@af[a]と等価。 後ろのカッコ(])を入力しなくてもすむ。

Plot[Evaluate@Integrate[x^2, x], {x, -3, 3}]

// (後置記法)

a // ff[a]と等価。 数値にする(N)や簡約化(SimplifyFullSimplify)でよく使う。

In[1]:= Sin[2] // N

Out[1]= 0.909297

~ ~ (中置記法)

a~f~bとすると、f[a, b]と等価になる。

In[1]:= {1, 2}~Join~{3, 4}

Out[1]= {1, 2, 3, 4}

関数適用

&, #, ### (Function)

純関数。#1#2・・・が引数を表す。##1と同じ。 #0は関数自体表す。##は引数全体。

関数型プログラミングの基本。

In[1]:= If[#1 == 1, 1, #1 #0[#1 - 1]] &[10]

Out[1]= 3628800

/@ (Map)

f /@ {1, 2, 3, 4}Map[f, {1, 2, 3, 4}]と等価。 関数型プログラミングの基本。

In[1]:= f /@ {a, b, c, d}

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

//@ (MapAll)

f /@@ {1, 2, 3, 4}とすると、MapAll[f, {1, 2, 3, 4}]と等価。 あまり使わない。

@@ (Apply)

f @@ g[a]とすると、g[a]の頭部gfに置き換えてf[a]となる。 gListに対して、いろいろ使うことが多い。

In[1]:= Or @@ {False, False, True}

Out[1]= True

@@@ (Apply)

レベル1の部分にApplyされ、Apply[f, exp, {1}]と等価。 これもよく使う。

In[1]:= f @@@ {{a, b}, {c, d}}

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

/. (ReplaceAll)

exp /. a -> bexp中のabに置換する。 Solveなどで得られた解を利用するときによく使う。

In[1]:= ans = Solve[a x^2 + b x + c == 0, x];
x /. ans

Out[1]= {(-b - Sqrt[b^2 - 4 a c])/(2 a), (-b + Sqrt[b^2 - 4 a c])/(2 a)}

//. (ReplaceRepeated)

exp //. a -> bexp /. a -> bが変わらなくなるまで繰り返す。

数値表記

*^ (指数表記)

a*^xxxa * 10^xxxと等価。

In[1]:= 2*^10

Out[1]= 20000000000

^^ (BaseForm)

a^^xxxxでa進数表記。

In[1]:= 16^^faceb00c

Out[1]= 4207849484

その他

ここに紹介したもの以外にパターンの表記などがあるが、 パターンの表記はほとんど省略記法しか使わない。