Share via


Seq.initInfinite<'T>-Funktion (F#)

Generiert eine neue Sequenz, die beim Durchlaufen aufeinander folgende Elemente zurückgibt, indem die angegebene Funktion aufgerufen wird.

Namespace/Modulpfad: Microsoft.FSharp.Collections.Seq

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
Seq.initInfinite : (int -> 'T) -> seq<'T>

// Usage:
Seq.initInfinite initializer

Parameter

  • initializer
    Typ: int -> 'T

    Eine Funktion, die ein Element in der Sequenz aus einem angegebenen Index generiert.

Rückgabewert

Die Ergebnissequenz.

Hinweise

Die Ergebnisse des Funktionsaufrufs werden nicht gespeichert, d. h., die Funktion wird bei Bedarf erneut angewendet, um die Elemente neu zu generieren.An die Funktion wird der Index des generierten Elements übergeben.

Die Iteration kann bis Int32.MaxValue fortfahren.

Der Name dieser Funktion in kompilierten Assemblys lautet InitializeInfinite.Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.

Threadsicherheit

Die zurückgegebene Sequenz kann zwischen Threads sicher übergeben werden.Auf einzelne IEnumerator-Werte, die aus der zurückgegebenen Sequenz generiert werden, sollte nicht gleichzeitig zugegriffen werden.

Beispiel

Das folgende Beispiel veranschaulicht, wie mit Seq.initInfinite die Sequenz 1/n^2 mit abwechselnden Zeichen erstellt wird.

let seqInfinite = Seq.initInfinite (fun index ->
    let n = float( index + 1 )
    1.0 / (n * n * (if ((index + 1) % 2 = 0) then 1.0 else -1.0)))
printfn "%A" seqInfinite
  

Plattformen

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Versionsinformationen

F#-Kern-Bibliotheks-Versionen

Unterstützt in: 2,0, 4,0, portablen

Siehe auch

Referenz

Collections.Seq-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)