书上的F#示例,但我甚至无法编译它

时间:2012-06-07 06:25:13

标签: f#

我正在读“初学F#”一书, 有一个简短的示例代码列表,用于演示如下的惰性评估:

lazyValue = lazy ( 2 + 2 )
let actualValue = Lazy.force lazyValue
printfn "%i" actualValue

这似乎很容易,但是对我来说有一个错误,比如没有定义函数力???

我对此感到困惑。从msdn搜索,似乎没有答案。

任何人都可以告诉我发生了什么事?

3 个答案:

答案 0 :(得分:8)

出于某种原因,Lazy.force现在在F#PowerPack中。

由于此功能没有依赖性,我建议您从F# PowerPack复制它以方便使用:

module Lazy =
    let force (x: Lazy<'T>) = x.Force()

答案 1 :(得分:4)

作者写了Lazy.force因为作者之前可能使用过OCaml。随着时间的推移,F#从OCaml样式API转向C#样式API。现在人们写x.Valuex.Force()。代替。

答案 2 :(得分:2)

你的代码应该是

    let lazyValue = lazy ( 2 + 2 )
    let actualValue = lazyValue.Force()
    printfn "%i" actualValue