2016-02-25 3 views
4

Quels éléments dans F # sont évalués paresseux, quels éléments sont désirés évalués? Pour autant que je sache, si "seq" est paresseux évalué, cela signifie-t-il que "list" est impatient d'être évalué? Comment je le prouve? MerciLa liste de F # est désireux ou paresseux évalué? Ou seulement "seq" est paresseux évalué dans F #

+10

Les listes sont vivement évaluées. Les réponses que vous avez données à [votre question du 3 février] (http://stackoverflow.com/q/35169269/126014) le démontrent. –

+1

Pour preuve, vous pouvez regarder les définitions de type de ces types. La liste F # est définie ligne 1789: https://github.com/Microsoft/visualfsharp/blob/master/src/fsharp/FSharp.Core/prim-types.fsi – FuleSnabel

Répondre

7

Oui, la liste est désirée. Vous pouvez essayer et regarder dans le Gestionnaire des tâches par exemple:

#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