ラムダ文字の由来

Lisp で匿名関数を lambda と書くのは以下のような由来らしい。

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

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

http://blog.so-net.ne.jp/rainyday/2007-02-21

由来から言えば\よりも^の方が正しいのか。

とりあえずGaucheで再現してみる

gosh> (define ^ lambda)
^
gosh> (map (^(x)(+ x x)) '(1 2 3))
(2 4 6)