目前为止我们还一直避免的话题就是F#中必须注意的:变量无法再被赋值。
let x = 10
let y = 5
let x = x + y // Compile Error
一旦变量赋值以后,再次赋值就会出现错误。
F#的变量为什么要有不变性呢?
习惯了目前一些变量是可变的过程语言和面向对象语言,可能就会有变量不可变的话是否可以很好编码的疑问。
这样也就无法写i++以及i += 2之类的增量处理。
去年稍微接触了下Haskell,尽管全部变量都是不变的,但还是可以很好地编码。F#也吸收了 Haskell的想法。
不过,F#中有一个mutable的关键字。看来是可以同时处理不变的和可变的变量。关于这些,我想以后想去调查下。