题
我对f#变量的表面理解表明,将变量声明为“可变”并使用“ ref”变量基本上都在做同一件事。它们都是解决同一基本问题的不同方法 - 功能性语言中可突变性的有限且结构化的津贴,而无需诉诸IO Monad。通过我的理解,已经“抽象”了技术不同。
- 如果是这种情况,为什么关闭不能捕获可变变量,但是它们可以捕获裁判实例?
- 更笼统地,两种形式之间的技术不同是什么?
- 从语言设计的角度出发的目的是引入两个可变性快捷方式,而不仅仅是一个?
很抱歉,如果这是一个多部分,但它们似乎都相关。
解决方案
看
http://lorgonblog.wordpress.com/2008/11/12/on-lambdas-capture-and-mutability/
尤其是“语言设计评论”部分(我在这里引用它,但它并不孤单,您需要整个博客条目以获取上下文)。
不隶属于 StackOverflow