(*関数の定義例(1) 二乗の計算を行う関数 mySquare を定義する mySqure(x)=x*x*)mySquare[x_]:=x*x

(*関数の定義がうまくいっていることを確認する*)mySquare[3]

(*普通に文字列の計算もすることも確認*)Expand[mySquare[x+3]]

(*表を利用した関数の定義例(2) 次の表に対応した関数を定義する x|0|1|その他|--------+---+---+--------+next[x]|1|2|0|*)next[0]=1		(*next[0]:=0 とやってもよいが意味がない*)
next[1]=2
next[_]=0		(*「その他」の表現として「_」を利用*)

(*値を確認する*)next[0]
next[1]
next[2]

(*再起的(帰納的)定義の利用 関数の定義の右辺に、自分自身を利用することができる→再起的定義 次の二つの原則が必要[1] 最も単純な場合の値が再起を使わずに定義されている[2] 再起を利用する定義の場合は、引数の形が「単純になる」事 階乗の再起的定義の例 1 (n≤1 の時):最も単純な場合 n!={n*((n-1)!) (その他の時):再起定義の利用(引数が一減る)[注意] n が 1 の時が最も「単純」で、n が小さいほど「単純」とした場合*)fib[1]=1
fib[n_]:=n*fib[n-1]

(*fib[6] の計算*)fib[6]

(*等差数列(初項 2,公差 3)の二つの定義形式 明示的な定義 a_n=2+3*(n-1) 再起を利用した定義 b_1=2 b_{n+1}=b_n+3*)a[n_]:=2+3*(n-1)

b[1]=2
b[n_]:=b[n-1]+3

(*確認*)a[10]
b[10]

(*漸化式による数列の定義 フィボナッチ数列*)fib[0]=1
fib[1]=1
fib[n_]:=fib[n-1]+fib[n-2]

fib[0]
fib[1]
fib[2]
fib[3]
fib[4]
fib[5]
fib[6]