Seq.initInfinite<'T> (Función de F#)
Genera una nueva secuencia que, cuando se itera, devolverá elementos sucesivos mediante una llamada a la función especificada.
Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Collections.Seq
Ensamblado: FSharp.Core (en FSharp.Core.dll)
// Signature:
Seq.initInfinite : (int -> 'T) -> seq<'T>
// Usage:
Seq.initInfinite initializer
Parámetros
initializer
Tipo: int -> 'TFunción que genera un elemento de la secuencia a partir del índice especificado.
Valor devuelto
Secuencia resultante.
Comentarios
Los resultados de llamar a la función no se guardarán; es decir, la función se volverá a aplicar si es necesario para regenerar los elementos. A la función se le pasa el índice del elemento que se está generando.
La iteración puede continuar hasta Int32.MaxValue.
Esta función se denomina InitializeInfinite en los ensamblados compilados. Si obtiene acceso a la función desde un lenguaje distinto de F# o mediante reflexión, use este nombre.
Seguridad para subprocesos
La secuencia devuelta se puede pasar entre subprocesos de forma segura. Sin embargo, no se debe tener acceso de forma simultánea a los valores de IEnumerator individuales generados a partir de la secuencia devuelta.
Ejemplo
En el ejemplo siguiente se muestra el uso de Seq.initInfinite para crear una secuencia 1/n^2, con signos de alternancia.
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
Plataformas
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Información de versiones
Versiones de la biblioteca básica de F#
Se admite en: 2.0, 4.0, portables