Я пишу свою собственную повторную реализацию LINQ с помощью F # (благодаря 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>' s – Carsten
также '[]:> 'seq' или' [||]:>' a seq' или ничего похожего;) – Carsten
Канонический способ сделать это можно увидеть здесь [https://github.com/fsharp/fsharp/blob/master/src/fsharp/FSharp.Core/seq.fs#L20-L59) –