SSブログ

ラムダ文字の由来 [Haskell]

Haskell で匿名関数を表現するのに \ を使うのはバックスラッシュがラムダ文字 λ に似てるかららしい。でもこれは Windows とかだと円記号になってしまって台無しである。それにバックスラッシュは相当多くの言語で一意にエスケープの意味を持つので混乱する。

匿名関数をラムダ lambda と呼ぶのは Lisp の影響だが、Peter Norvig の Paradigms of Artificial Intelligence Programming によると Lisp で匿名関数を lambda と書くのは以下のような由来らしい。

- Russel と Whitehead の Principia Mathematica では のように束縛変数の上にキャレットを置く書き方をしていた
- Church がその記法を ^x(x+x) と変えた
- キャレットの下に何も無いのが変だと思ったので形が似ている Λx(x+x) と変えた(大文字ラムダ)
- やっぱり Λ は他の記号と見間違えやすいので小文字にして λx(x+x) とした
- McCarthy が Lisp を作ったときにそのラムダ表記を借りて lambda とした

Haskell も Church の最初の記法にさかのぼればよかったのになあと思った。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。