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 -> 'TFunzione 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