我只是想通过维基手册:Programming/来学习一些Programming/。
请考虑以下示例:Data
open System
let withSideEffects x =
x := "assigned from withSideEffects function"
let refTest() =
let msg = ref "hello"
printfn "%s" !msg
let setMsg() =
msg := "world"
setMsg()
printfn "%s" !msg
withSideEffects msg
printfn "%s" !msg
let main() =
refTest()
Console.ReadKey(true) |> ignore
main()
我意识到他们把()放在每个有副作用的功能之后。删除大括号可以很好地编译,并将类型从单元->单元更改为单元。
问题:
发布于 2017-01-22 09:45:46
将()
添加到绑定中,将其从立即执行的块(返回值绑定到标识符(本例中为unit
))更改为接受unit
并返回unit
(写入为unit -> unit
)的函数。
这样做的优点是可以推迟执行,并且可以多次执行。这可能是一种抽象化副作用的有用方法,但它只是您可以在日常工具包中使用的语言的一个简单属性。你可能想得太多了。
https://stackoverflow.com/questions/41787084
复制相似问题