Я не могу обернуть голову вокруг различий между последовательностью и LazyList
. Они ленивы и потенциально бесконечны. В то время как seq<'T>
является IEnumerable<'T>
из .NET framework, LazyList
включен в F# PowerPack. На практике я встречаю последовательности гораздо чаще, чем LazyList
с.Последовательность против LazyList
В чем их отличие в плане производительности, использования, удобочитаемости и т. Д.? Каковы причины такой плохой репутации LazyList
по сравнению с seq
?
+1, круто, я не знал о кешировании части. Не могли бы вы привести пример, который требует как лености, так и семантики списка? – pad
Перемещение последовательности при одновременном доступе к нескольким элементам может быть выполнено с помощью 'seq', но оно намного более чистое с использованием сопоставления с образцом LazyList +. – Daniel
См., Например, http://stackoverflow.com/questions/3484315/how-to-merge-sorted-sequences-in-f и http://stackoverflow.com/questions/1306140/f-why-is-using-a-sequence- so-much-slower-than-using-a-list-in-this-example/1306267 # 1306267 – Brian