让F#中的绑定和构造函数

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#都会调用构造函数吗?如果是这样,我如何绕过这个广告达到预期的效果?这是功能和命令式编程的混乱混合.

orl*_*dpm 6

F#似乎解释了这样的陈述

let MyFunction = DoSomething()
Run Code Online (Sandbox Code Playgroud)

let MyFunction() = DoSomething()
Run Code Online (Sandbox Code Playgroud)

不同.第一个将返回值绑定DoSomething()到变量MyFunction,第二个将操作绑定DoSomething()到函数MyFunction().

我的用法UptimeStopwatch是正确的,错误在我的实现中的其他地方.