2016-02-25 8 views
4

Какие элементы в F # оцениваются ленивыми, какие элементы оцениваются? Насколько я знаю, если «seq» оценивается лениво, значит ли это, что «список» оценивается? Как я это доказываю? СпасибоСписок F # нетерпелив или ленив оценивается? Или только «seq» ленив оценивается в F #

+10

Списки с нетерпением оценены. Ответы, которые вы получили [ваш вопрос с 3 февраля] (http://stackoverflow.com/q/35169269/126014), демонстрируют это. –

+1

Для доказательства вы можете посмотреть определения типов указанных типов. Список F # определяется строкой 1789: https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/FSharp.Core/prim-types.fsi – FuleSnabel

ответ

7

Да, список нетерпелив. Вы можете попробовать и посмотреть его в диспетчере задач, например:

#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