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#)