2
我使用F#編寫自己的LINQ重新實現(感謝Jon Skeet的靈感)。F#:編寫空序列而不使用Seq.empty
我用了一招,以產生空序列:
let empty<'b> =
seq {
for n = 0 to -1 do
yield Unchecked.defaultof<'b>
}
printfn "%A" empty<int> // -> seq []
是否有任何慣用的方法來做到這一點?
(Seq.empty
是沒有用的,我只是重新實現它)使用序列表情我能想到的是
爲什麼'Seq.empty'不是有用的,而'seq'構建器是?無論如何,你總是可以使用一個對象表達式來返回IEnumerable <'b>,它返回* empty *'IEnumerator <'b>' – Carsten
也'']:>'seq'或'[||]:>'seq'或者任何類似的東西;) – Carsten
這樣做的佳能方式可以看[這裏](https://github.com/fsharp/fsharp/blob/master/src/fsharp/FSharp.Core/seq.fs#L20-L59) –