, :
Seq.collect (fun pat -> Seq.singleton(pat)) (0 .. 4095)
Seq.collect, :
let collect f sources = map f sources |> concat
concat, :
let concat sources =
checkNonNull "sources" sources
mkConcatSeq sources
mkConcatSeq :
let mkConcatSeq (sources: seq<'U :> seq<'T>>) =
mkSeq (fun () -> new ConcatEnumerator<_,_>(sources) :> IEnumerator<'T>)
, IEnumerator<'T> , , IEnumerator.
Seq.init :
let init count f =
if count < 0 then invalidArg "count" (SR.GetString(SR.inputMustBeNonNegative))
mkSeq (fun () -> IEnumerator.upto (Some (count-1)) f)
mkSeq :
let mkSeq f =
{ new IEnumerable<'U> with
member x.GetEnumerator() = f()
interface IEnumerable with
member x.GetEnumerator() = (f() :> IEnumerator) }
IEnumerable<'T>, IEnumerator.