ラムダ文字の由来 [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 の最初の記法にさかのぼればよかったのになあと思った。
コメント 0