Я изучаю 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
выполняется только один раз, когда функция вызывается впервые. "
Когда я начал изучать FP с помощью haskell, то, как он обрабатывал побочные эффекты, как это, полностью сожгло мой мозг, но F # mutable
снова разрушает мой мозг, другим способом. В чем разница между двумя фрагментами? И каково истинное значение и условие вышеприведенного предложения об инициализации изменяемого значения?