ProgrammingのTipなど

ラムダ計算の基本

ラムダ計算で使われる記号
変数名に使われるABC...XYZのアルファベット
()カッコ
.ドット
ラムダ式
1:変数で作られる式はラムダ式
2:λx.Mのように変数xとラムダ式Mの式はラムダ式(ラムダ抽象 Mをxで抽象する)
3:ラムダ式Mとラムダ式Nで作られた式MNもラムダ式である

定義と略記

定義通りの記法
ラムダ計算は本来はカッコで囲み
一つの変数を持つλごとに書きます
(λx.(λy.(x+y))・・・(l-1)
xとyを使った計算が行われという意味です
略記
定義通りの書き方をしているとカッコが多いので
λ式は略記で書かれることが多いです
(λx.(λy.(x+y))・・・(l-1)
はカッコを省略し変数をまとめて
λxy.x+y
と略記で書けます

ラムダ式

λ記号の次に書かれるのがパラメーター(引数)です
ドット(.)の次に書かれるのがそのλ式内での命令処理です
ラムダ計算では引数は束縛され一度代入された数字は後から変更できません
ただし引数以外は自由変数であり何度も変更できます
λ引数.関数の内容
λx.x+2
これは引数xに2を足す関数を表します
Schemeで書けば
(lambda (x) (+ x 2))
です

足し算のラムダ式を書くなら
λxy.x+y
10倍にするラムダ式なら
λx.x*10
です
その10倍にするλ式に3を渡すなら
(λx.x*10) 3
戻り値30
というようになります
lisp・Schemeでの書き方
ラムダ計算論はプログラミング言語に大きな影響を与えました。(特に関数型言語に)
プログラミング言語lispやSchemeは型なしラムダ計算の影響を強く受けており
lispやSchemeでもラムダ関数を使えば同じような構造で書けます
このWikiでのラムダ計算の説明にもSchemeのコードを多く使っています
λxy.x+y
はlispやSchemeでは
(lamuda (x y) (+ x y))
となります

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー2

開くメニュー

閉じるメニュー

  • アイテム
  • アイテム
  • アイテム
【メニュー編集】

管理人/副管理人のみ編集できます