F#的名单是急切或懒惰的评估?或者只有“seq”在F#中进行延迟评估

时间:2016-02-25 09:19:32

标签: list f# lazy-evaluation evaluation seq

F#中的哪些元素是惰性评估的,哪些元素是急切评估的? 据我所知,如果“seq”是懒惰的评估,它是否意味着“列表”是急切评估的? 我是如何证明的?感谢

1 个答案:

答案 0 :(得分:6)

是的,列表很渴望。您可以尝试在任务管理器中查看它,例如:

#time
let l = List.init 100000000 (fun x -> 0.)
let s = Seq.init 100000000 (fun x -> 0.)
let s2l = s |> Seq.take 10000000 |> Seq.toList