2010-10-19 33 views
7

我对f#中变量的肤浅理解表明,声明一个变量为'可变'并且使用'ref'变量基本上都是同样的事情。它们都是解决同一个潜在问题的不同方式 - 一种功能语言中有限的,结构化的可变性允许,而不必求助于IO Monad。根据我的理解,有一种技术上的差异已经被“抽象”了。在捕获方面的可变与引用变量

  1. 如果是这种情况,为什么不能关闭捕获可变变量,但他们可以捕获ref实例?
  2. 更一般地说,这两种形式之间的技术差异是什么?
  3. 从引入两个可变性快捷键而非仅仅一个的语言设计角度来看,目的是什么?

对不起,如果这是一个多人,但他们都似乎相关。

回答