ProgrammingのTipなど

再帰

ラムダ計算における再帰の必要性
ラムダ計算は数学の計算を全てラムダ関数で表現しようと
するものです。
そのため数字もチャーチ数で表します。
ループもラムダ関数で表せなければなりません。
そのためにはFixedPoint演算子を使う必要があります
FixedPoint
ラムダ式でFixedPointを考えると
FixedPoint = (λx.(F(xx)))(λx.(F(xx)))
となります

(λx.(F(xx)))が2つ連続しており
後ろの(λx.(F(xx)))を前の(λx.(F(xx)))のxにβ変換すれば
F(xx) ← (λx.(F(xx))) xにβ変換
(F( (λx.(F(xx))) (λx.(F(xx)) ))
となり
(λx.(F(xx)))(λx.(F(xx))) = (F(λx.(F(xx)))(λx.(F(xx))))
という形になり
FixedPointになっています
FixedPoint定理
これは
任意のラムダ式FにおいてX=FXとなるラムダ式Xがある
という定理になります
再帰とfix
チャーチはラムダ計算において
任意の再帰はfix(FixedPointFunction)と非再帰に分割できることを示しました

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー2

開くメニュー

閉じるメニュー

  • アイテム
  • アイテム
  • アイテム
【メニュー編集】

管理人/副管理人のみ編集できます