使用计算表达式重新分配函数中的变量

Re-assign a variable in a function with computation expression

根据问题 How can I re-assign a variable in a function in Haskell?,有一个 haskell 解决方案可以在 function:

中更改刚果大象总数 Congo 0
main' :: StateT Congo IO ()
main' =
  do
    printElephant
    function 2
    printElephant

-- run program:
main :: IO ()
main = Congo 0 & runStateT main' & void
-- outputs:
0
2

看完Computation Expression series后,我还是不知道如何正确地为这个问题编写一个CE构建器。如何使用 F# 的 CE 在函数中重新分配变量?

F# 首次class 支持命令式编程结构。您只需要将 let 绑定标记为 mutable。在这种情况下不需要计算表达式:

let mutable elephant = 0
printfn "Elephant = %d" elephant
elephant <- 2
printfn "Elephant = %d" elephant