【发布时间】:2020-04-08 22:54:59
【问题描述】:
我正在学习 F#,并被 mutable 关键字的概念所困扰。
请看下面的例子:
let count =
let mutable a = 1
fun () -> a <- a + 1; a
val count: unit -> int
每次使用() 调用时都会增加 1。但下一个代码没有:
let count =
let mutable a = 1
a <- a + 1
a
val count: int
总是2。
在我正在学习的书中,第一个例子说,“可变值a 的初始化只进行一次,当函数第一次调用时。”
当我开始使用 haskell 学习 FP 时,它处理这种副作用的方式完全烧毁了我的大脑,但 F# mutable 再次以不同的方式摧毁了我的大脑。以上两个sn-ps有什么区别?还有,关于可变值的初始化,上面这句话的真正含义和条件是什么?
【问题讨论】:
标签: f#