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