Seq.initInfinite<'T>, fonction (F#)
Génère une nouvelle séquence qui, si elle est itérée, retournera des éléments consécutifs en appelant la fonction donnée.
Espace de noms/Chemin du module : Microsoft.FSharp.Collections.Seq
Assembly : FSharp.Core (in FSharp.Core.dll)
// Signature:
Seq.initInfinite : (int -> 'T) -> seq<'T>
// Usage:
Seq.initInfinite initializer
Paramètres
initializer
Type : int -> 'TFonction qui génère un élément dans la séquence à partir d'un index donné.
Valeur de retour
Séquence de résultat.
Notes
Les résultats de l'appel de la fonction ne seront pas enregistrés ; en d'autres termes, la fonction sera réappliquée chaque fois que nécessaire pour régénérer les éléments. L'index de l'élément actuellement généré est passé à la fonction.
L'itération peut continuer jusqu'à Int32.MaxValue.
Cette fonction se nomme InitializeInfinite dans les assemblys compilés. Si vous accédez à la fonction à partir d'un langage autre que F# ou par réflexion, utilisez ce nom.
Sécurité des threads
La séquence retournée peut être passée entre les threads en toute sécurité. Toutefois, les valeurs IEnumerator individuelles générées à partir de la séquence retournée ne doivent pas être accessibles simultanément.
Exemple
L'exemple suivant montre comment utiliser Seq.initInfinite pour créer une séquence 1/n^2, avec des signes de remplacement.
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
Plateformes
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informations de version
Versions de bibliothèque principale F#
Prise en charge dans : 2,0, 4,0, portables