Umu*_*dik 1 monads f# haskell functional-programming
haskell 上有 IO monad 以保持纯净。我知道 f#/ocaml 支持可变状态,但 IO 操作实际上是如何工作的。与haskell的IO monad对应的概念是什么?
F# 并不纯粹。它继承了 Caml 的传统,允许随处进行 IO 和状态更改(例如,分配给可变变量)。例如:
let f : int -> int =
fun x ->
printf "Hello\n";
x+1
printf "%d\n" (f 1 + f 2) (* prints Hello twice, then 5 *)
Run Code Online (Sandbox Code Playgroud)
不过,如果您想使用 Monad,仍然可以在 F# 中找到它们。 计算表达式大致对应于 monad。
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |