【らむだけいさん】
ラムダ計算 とは?
💡 関数だけで世界を計算する、究極のミニマリスト理論
📌 このページのポイント
- ラムダ計算は「関数を作る」と「関数を適用する」の2つの操作だけで全ての計算を表現する
- 1930年代にアロンゾ・チャーチが提案し、チューリングマシンと同等の計算能力を持つことが証明された
- Haskell、Lisp、JavaScriptのアロー関数(=>)など、関数型プログラミングの土台になっている
- 現代のプログラミング言語のクロージャやカリー化はラムダ計算の概念がそのまま活きている
ラムダ計算ってなんだか難しそう…何に使うの?
関数だけで足し算ができるの?
たとえばλx.x+1 という式は「xを受け取ってx+1を返す関数」を意味するよ。これに3を渡すと4になる。実際にはもっと原始的なレベルから数を定義できるんだけど、基本はこの「作る→渡す」の繰り返しだよ
プログラミングとどう関係あるの?
JavaScriptの `(x) => x + 1` やPythonの `lambda x→ x + 1` はまさにラムダ計算そのものだよ。HaskellやLispはラムダ計算を直接ベースに設計された言語だね
チューリングマシンと同じ能力って本当?
本当だよ。チャーチ=チューリングのテーゼと呼ばれていて、ラムダ計算で書けるものはチューリングマシンでも計算できるし、逆もまた然り。「計算できるもの」の定義を2つの全く違うアプローチから導いて同じ結論に至ったのは、計算機科学の歴史の中でも最も美しい結果の一つだね
まとめ:ざっくりこれだけ覚えればOK!
「ラムダ計算」って出てきたら「関数だけで何でも計算できる理論体系」と思えればだいたいOK!
📖 おまけ:英語の意味
「Lambda Calculus」 = ラムダ計算
💬 ギリシャ文字のλ(ラムダ)を使って関数を表現するよ。チャーチが「^」記号を使おうとしたけど印刷の都合でλになった、という説もあるんだ