←【情報学基礎A】シラバスへ
←講義のツボメニューへ

情報学基礎A

【第15回】【2000.11.30】


関数モデル
(4)


ラムダ計算・ラムダ記法(λ計算を通して計算を眺める)

f(x)=x2+2x+4
λx.x2+2x+4
(上:いつも見る関数、下:ラムダ記法による表記)
仮引数本体

実際に数値を入れて計算
f(-3)=(-3)2+2(-3)+4=7
x.x2+2x+4)-3=(-3)2+2(-3)+4=7
実引数


1つの変数xを含む式x2からλx.x2というようにして関数を作ることをラムダ抽象という。
2つの変数x、yからなる式x*yに対してラムダ抽象を繰り返せば、λx.(λy.x*y)が得られる。

例)
((λx.(λy.x*y))4)5
=(λy.4*y)5
=4*5=20

n変数関数N×N×・・・×N×Nに対してn回ラムダ抽象を繰り返すと、1変数関数 N→(N→(・・・)→N)に変換できる。 これをカリー化という。


ラムダ式とは

  1. 変数x、y、x、・・・はラムダ式。
  2. Mがラムダ式でxが変数ならば(λx.M)はラムダ式。
  3. M、Nがラムダ式ならば(M N)はラムダ式。
λx.Mをxに関するラムダ抽象、λxのxをラムダ変数と呼ぶ。
また、(M N)を、MのNに対する関数適用という。


ラムダ式の略記規則

  1. 最外側のカッコははずしてもよい。
  2. ((・・・(M1 M2)・・・)Mn)は左側により強く結合されることとして、M1 M2・・・Mnと書いてよい。
  3. (λx1.(・・・(λxn.M)・・・))はλx1・・・n.Mと書いてよい。


←【情報学基礎A】シラバスへ