【らむだけいさん】

ラムダ計算 とは?

💡 関数だけで世界を計算する、究極のミニマリスト理論
📌 このページのポイント
ラムダ計算の簡約(Beta簡約) STEP 1 → 関数を定義 λx. x + 1 適用 STEP 2 → 引数を渡す (λx. x + 1) 3 簡約 STEP 3 → 結果 3 + 1 = 4 ラムダ計算の3要素 λx.M … 関数の抽象化 M N … 関数の適用 x … 変数 対応例→ JS→ (x) => x+1 Python→ lambda x→ x+1 Haskell→ \x -> x+1
ラムダ式の簡約プロセス
ひよこ ひよこ

ラムダ計算ってなんだか難しそう…何に使うの?

ペンギン先生 ペンギン先生

簡単に言うと「関数を作って、関数に値を渡す」、これだけで足し算も条件分岐ループも全部表現できるよ、という理論だよ。プログラミングの基礎理論なんだ

ひよこ ひよこ

関数だけで足し算ができるの?

ペンギン先生 ペンギン先生

たとえばλx.x+1 という式は「xを受け取ってx+1を返す関数」を意味するよ。これに3を渡すと4になる。実際にはもっと原始的なレベルから数を定義できるんだけど、基本はこの「作る→渡す」の繰り返しだよ

ひよこ ひよこ

プログラミングとどう関係あるの?

ペンギン先生 ペンギン先生

JavaScriptの `(x) => x + 1` やPythonの `lambda x→ x + 1` はまさにラムダ計算そのものだよ。HaskellやLispはラムダ計算を直接ベースに設計された言語だね

ひよこ ひよこ

チューリングマシンと同じ能力って本当?

ペンギン先生 ペンギン先生

本当だよ。チャーチ=チューリングのテーゼと呼ばれていて、ラムダ計算で書けるものはチューリングマシンでも計算できるし、逆もまた然り。「計算できるもの」の定義を2つの全く違うアプローチから導いて同じ結論に至ったのは、計算機科学の歴史の中でも最も美しい結果の一つだね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ラムダ計算」って出てきたら「関数だけで何でも計算できる理論体系」と思えればだいたいOK!
📖 おまけ:英語の意味
「Lambda Calculus」 = ラムダ計算
💬 ギリシャ文字のλ(ラムダ)を使って関数を表現するよ。チャーチが「^」記号を使おうとしたけど印刷の都合でλになった、という説もあるんだ
← 用語集にもどる