Condividi tramite


Funzione Seq.initInfinite<'T> (F#)

Genera una nuova sequenza che, se iterata, restituirà elementi successivi chiamando la funzione specificata.

Percorso spazio dei nomi/modulo: Microsoft.FSharp.Collections.Seq

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

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

// Usage:
Seq.initInfinite initializer

Parametri

  • initializer
    Tipo: int -> 'T

    Funzione che genera un elemento nella sequenza da un indice specificato.

Valore restituito

Sequenza risultante.

Note

I risultati della chiamata alla funzione non verranno salvati, ovvero la funzione verrà applicata di nuovo, se necessario, per rigenerare gli elementi. Alla funzione viene passato l'indice dell'elemento in corso di generazione.

L'iterazione è in grado di continuare fino a Int32.MaxValue.

Questa funzione è denominata InitializeInfinite negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.

Thread safety

La sequenza restituita può essere passata in modo sicuro tra thread. L'accesso ai singoli valori IEnumerator generati dalla sequenza restituita non deve essere tuttavia eseguito in modo simultaneo.

Esempio

Nell'esempio di codice seguente viene illustrato l'utilizzo di Seq.initInfinite per creare una sequenza 1/n^2 con segni alternati.

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
  

Piattaforme

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.

Informazioni sulla versione

F# Runtime

Supportato in: 2.0, 4.0

Silverlight

Supportato in: 3

Vedere anche

Riferimenti

Modulo Collections.Seq (F#)

Spazio dei nomi Microsoft.FSharp.Collections (F#)