F#中的惰性评估简介
示例
与大多数编程语言一样,F#默认情况下使用严格评估。在严格评估中,将立即执行计算。相反,“惰性评估”将计算的执行推迟到需要计算结果时为止。此外,在“延迟评估”下的计算结果将被缓存,从而避免了对表达式进行重新评估的需要。
我们可以在F#中通过lazy关键字和使用懒惰求值Sequences
//23*23在这里不评估 //lazy关键字创建延迟计算的延迟计算 let x = lazy(23 * 23) //我们需要强制结果 let y = x.Force()//HelloWorld未在此处打印 let z = lazy(printfn "Hello World\n"; 23424) //你好世界打印和23424返回 let ans1 = z.Force()//HelloWorld未在此处打印 as z as already been evaluated, but 23424 is //回 let ans2 = z.Force()