orl*_*dpm 0 f# functional-programming
我在F#中定义一个秒表:
open System.Diagnostics
let UptimeStopwatch = Stopwatch.StartNew()
Run Code Online (Sandbox Code Playgroud)
我每3秒打印一次
printfn "%A" UptimeStopwatch.Elapsed
Run Code Online (Sandbox Code Playgroud)
每当我得到"00:00:00.0003195"或类似的小东西.每次我引用UptimeStopwatch时F#都会调用构造函数吗?如果是这样,我如何绕过这个广告达到预期的效果?这是功能和命令式编程的混乱混合.
F#似乎解释了这样的陈述
let MyFunction = DoSomething()
Run Code Online (Sandbox Code Playgroud)
和
let MyFunction() = DoSomething()
Run Code Online (Sandbox Code Playgroud)
不同.第一个将返回值绑定DoSomething()到变量MyFunction,第二个将操作绑定DoSomething()到函数MyFunction().
我的用法UptimeStopwatch是正确的,错误在我的实现中的其他地方.