7

f#の変数についての私の表面的な理解は、変数を「可変」であると宣言することと「ref」変数を使用することの両方が本質的に同じことを行うことを示唆しています。これらは両方とも、同じ根本的な問題に対処するための異なる方法です。つまり、IOモナドに頼る必要なしに、関数型言語での可変性の制限された構造化された許容値です。技術的な違いがあるということは、私の理解によって「抽象化」されています。

  1. この場合、クロージャは可変変数をキャプチャできないのに、refインスタンスをキャプチャできるのはなぜですか?
  2. より一般的には、この違いを可能にする2つの形式の技術的な違いは何ですか?
  3. 1つだけではなく2つの可変性ショートカットを導入するという言語設計の観点からの目的は何ですか?

これがマルチパートナーの場合は申し訳ありませんが、それらはすべて関連しているようです。

4

1 に答える 1

6

見る

http://lorgonblog.wordpress.com/2008/11/12/on-lambdas-capture-and-mutability/

特に「言語設計の解説」セクション (ここで引用しますが、単独ではうまく機能しません。文脈を理解するには、ブログ エントリ全体が必要です)。

于 2010-10-19T18:06:45.890 に答える