我对 f# 中变量的肤浅理解表明,将变量声明为“可变”和使用“ref”变量本质上都做同样的事情。它们都是解决相同潜在问题的不同方法 - 在函数式语言中有限且结构化的可变性允许,而不必求助于 IO Monad。根据我的理解,存在技术差异已被“抽象化”。
如果这是一个多方,我很抱歉,但它们似乎都相关。
最佳答案
看
http://lorgonblog.wordpress.com/2008/11/12/on-lambdas-capture-and-mutability/
特别是“语言设计评论”部分(我会在这里引用它,但它并不独立,您需要整个博客条目才能获得上下文)。
关于f# - 就捕获而言,可变 vs Ref 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3970484/