Compartir a través de


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

    Funció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

Vea también

Referencia

Collections.Seq (Módulo de F#)

Microsoft.FSharp.Collections (Espacio de nombres de F#)