なぜラムダ抽象化が型なしラムダ計算の値である唯一の項なのですか?


7

「型なしラムダ計算の唯一の値はラムダ抽象化である」と私は混乱しています。

他の用語が値ではないのはなぜですか?ラムダ抽象化が値であることはどういう意味ですか?最初に頭に浮かんだのは、おそらくラムダ抽象化が唯一可能な正規形であるということでしたが、これはもちろん本当ではありません。例えばλバツバツyy

誰かが私を啓発できますか?


どこで見ましたか?価値の定義は異なる場合があります。
jmad

2
λバツバツ y ラムダ抽象化ではなく、それはアプリケーション、すなわちのアプリケーションです λバツバツy
Dave Clarke

1
@DaveClarke:Jeroenが意味したと思う y (値が抽象であることを証明するための)通常の形式であり、それではありません λバツバツy抽象化でした(抽象化が価値であることを反証するため)。
jmad

2
変数は、すべての結石において常に値です。
Fabio F.

2
@DaveClarke:私はピアースの本をチェックしたところです。ラムダ計算の運用上のセマンティクスが非公式に最初に触れられるため、混乱が生じました。微積分の唯一の値はラムダ抽象化であると脚注で述べられています。その後、セマンティクスが正式に定義されると、閉じられた用語のみが考慮されていることが明らかになります。
codd

回答:


10

ここでは多くのことが行われています。

  • あなたが話している言語には、追加のデータ型はありません。そうでなければ、他の種類の値があるでしょう。
  • 言語の削減戦略は、ラムダ抽象化の内部を削減しません。値による呼び出しと名前による呼び出しの両方がこれに準拠します。そうでなければ、すべてのラムダ抽象化が正常であるとは限りません。
  • 一般に、閉じた式をプログラムと見なすため、自由変数はありません。そのため、提示する例は考慮されません。

他の用語は、値を減らすことができるか、クローズドプログラムに表示されないため、値ではありません。

ラムダ抽象化が値であることは、それ以上削減できないことを意味します(削減戦略によって異なります)。

オープンタームの場合、変数も値です。


1
意味あり。私がそれから得る主なことは、閉じられた条件だけが考慮に入れられるべきであるということです。元のソースを調べて、それが運用上のセマンティクスの正式な定義の一部であるかどうかを確認します。
codd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.