11

「モナドの理解」というタイトルのワドラーの論文からの次の定義を理解するのを手伝ってくれる人はいますか? (抜粋はセクション 3.2/9 ページ、つまり「厳密性モナド」サブセクションからのものです。)


遅延関数型プログラムでは、評価の順序を制御する必要がある場合があります。これは通常、次のように定義された計算可能な関数strictで実現されます。

厳密な f x = x ≠ ⊥ の場合、f xでなければ ⊥.

操作上、厳密な f xは、最初にxを弱頭部正規形 (WHNF) に減らし、次にアプリケーションf xを減らすことによって減らされます。または、 xf xを並列に減らすことは安全ですが、 xが WHNF になるまで結果へのアクセスを許可しません。


この論文では、2 本の垂直線で構成される記号の使用をまだ確認していないため (それが何と呼ばれているかはわかりません)、どこからともなく出てきます。

Wadler が「遅延プログラムの評価を制御するために [厳密な] 内包表記を使用する」と述べていることを考えると、理解することは非常に重要な概念のように思えます。

4

2 に答える 2

11

あなたが説明する記号は「下」です。それは秩序理論(特に格子理論)から来ています。部分的に順序付けられたセットの「下」要素が存在する場合、その要素は他のすべての要素よりも優先されます。プログラミング言語のセマンティクスでは、他のどの値よりも「あまり定義されていない」値を指します。これらの条件を区別しようとすると、数学が大幅に弱まり、プログラム分析が複雑になるため、エラーを生成するか終了に失敗するすべての計算に「下」の値を割り当てるのが一般的です。

物事を別の答えに結び付けるために、論理的な「偽」の値は、真理値のラティスの一番下の要素であり、「真」は一番上の要素です。古典論理ではこの2つだけですが、直観主義やさまざまな形態の構成主義など、無数の真偽値を持つ論理も考えられます。これらは概念をかなり異なる方向に導きます。

于 2014-10-17T17:57:15.750 に答える
7
于 2014-10-17T17:52:44.340 に答える