Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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