7.1 関数定義

百聞は一見にしかず。$ f(x)=x^2$ なる関数 $ f$ は、
   f[x_] := x^2
または
   f[x_] = x^2
で定義出来る。つまり、
関数を定義する文法
関数名[引数名_ ] :=
または
関数名[引数名_ ] =
ということである。 アンダースコア (下線) `_' が必要である (また ``f[名前_ 型名] := 式'' のように型名を指定することも出来る)。

:= はいわゆる遅延評価をすることの指定である。 \fbox{左辺 \texttt{:=} 右辺} とすると、右辺の式を評価しないまま、 左辺に代入し、それ以降、左辺が出現して評価されるごとに (関数定義に使った場合は、関数が呼び出されるごとに)、 右辺に置き換えられて、それから評価される。 (これについては、??:= として、 Mathematica のヘルプを読むことを勧める。 あるいはチュートリアルの中の「即時的な定義と遅延的な定義」)

関数を再定義すると古い定義は消えてしまう。

上のように定義しておくと、以下のように使える(細かい説明は不要であろう)。
  f[4]
  f[a+1]
  f[3x+x^2]
もちろん関数 ``f'' の定義が見たい場合は、``?f'', または ``??f'' とする。
  ??f

多変数の関数も定義できる。
f[x_,y_] := (x^2 - y^2) / (x^2 + y^2)  

桂田 祐史
2018-10-12