例。これが私たちのJavaScriptコードだとします:置換モデルはクロージャのために機能しますか?あるいは、環境モデルが必要ですか?
let a = x => {
let y = x * 2
return z => x + y + z
}
let b = a(1)
let c = b(2)
代替モデルを使ってこれを評価できますか、環境モデルが必要ですか?
私はそうのように始まった:
let c = ((x => {
let y = x * 2
return z => x + y + z
})(1))(2)
しかし、私は(2
と呼ばれる)外側の式を評価することができます前に、私は(1
と呼ばれる)内側の式を評価する必要があります。しかし、代用のためには、それは常に外部にあります。
これは代替モデルが不十分であることを示していますか?それとも、アウト・イン・アウトだけでなく、アウト・イン・アウトを評価することもできますか?あるいはそれを見るための他の方法がありますか?
コードでバインドされたスコープ変数が変更されない場合は、環境モデルは必要ありません。 – Bergi
純粋な関数では、評価の順序は関係ありません。しかし、外部入力の場合でも、アプリケーション操作の左側を関数に評価してから適用する必要があります。 – Bergi