ラムダ計算における自由および拘束


7

Slonnegerの「Syntax and Semantics of Programming Languages」の一部を以下に示します。

変数は、同じラムダ式内でバインドされ、フリーの両方で発生する可能性があります。たとえば、λx.yλy.yxでは、最初のyがフリーで、他の2つはバインドされています。

自由変数は、λxの直後のyであると想定しています。バインドされたyはλy.yで、直感的に把握できます。したがって、((λx.yλy.yx)a)b)は(yλy.ya)b)に減少し、次にbbaに減少しますか?これがどのようになってきたのか誰かが説明できますか?結局、それは式bです。誰かがおそらくバインドされた変数と自由変数のより多くの例を提供できますか?


スロンネガーは良い例をここで使用しなかったと思います、なぜなら λx.y 簡単に誤解される可能性があります λxy、これは通常、 λx.λy。私は別の例を挙げます:(λx.λy.xyx)x、の最後の発生 xは無料で、他の人は拘束されています。
ジェイ

回答:


11

曖昧さをなくすために括弧を追加しました

λx.(y(λy.(yx)))
赤い yは無料で、青いものは緑の抽象化によって束縛されています。グリーンと言っても意味がないと思いますy バインドされていますが、ラムダと一緒にバインダーです。

用語のベータを1回減らすことができます

λx.(y(λy.(yx)))abβ(y(λy.(ya)))b

残りのredexeが残っていないため、これ以上はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.