Compartir a través de


List.scanBack<'T,'State> (Función de F#)

Como List.foldBack, pero devuelve los resultados intermedio y final.

Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Collections.List

Ensamblado: FSharp.Core (en FSharp.Core.dll)

// Signature:
List.scanBack : ('T -> 'State -> 'State) -> 'T list -> 'State -> 'State list

// Usage:
List.scanBack folder list state

Parámetros

  • folder
    Tipo: 'T -> 'State -> 'State

    Función que se usa para actualizar el estado asignado a los elementos de entrada.

  • list
    Tipo: 'T lista

    Lista de entrada.

  • state
    Tipo: 'State

    Estado inicial.

Valor devuelto

Lista de estados.

Comentarios

Esta función se denomina ScanBack en los ensamblados compilados. Si obtiene acceso a la función desde un lenguaje distinto de F# o mediante reflexión, use este nombre.

Ejemplo

En el ejemplo de código siguiente se muestra cómo usar List.scanBack y se contrasta su comportamiento con el de List.scan.

// A list of functions that transform 
// integers. (int -> int)
let ops1 =
 [ (fun x -> x + 1), "add 1"
   (fun x -> x + 2), "add 2"
   (fun x -> x - 5), "subtract 5" ]

let ops2 =
 [ (fun x -> x + 1), "add 1"
   (fun x -> x * 5), "multiply by 5"
   (fun x -> x * x), "square" ]

// Compare scan and scanBack, which apply the
// operations in the opposite order.
let compareOpOrder ops x0 =
    let ops, opNames = List.unzip ops
    let xs1 = List.scan (fun x op -> op x) x0 ops
    let xs2 = List.scanBack (fun op x -> op x) ops x0

    printfn "Operations:"
    opNames |> List.iter (fun opName -> printf "%s  " opName)
    printfn ""

    // Print the intermediate results.
    let xs = List.zip xs1 (List.rev xs2)
    printfn "List.scan List.scanBack"
    for (x1, x2) in xs do
        printfn "%10d %10d" x1 x2
    printfn ""

compareOpOrder ops1 10
compareOpOrder ops2 10

Output

  

Plataformas

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Información de versiones

Runtime de F#

Se admite en las versiones: 2.0, 4.0

Silverlight

Se admite en la versión: 3

Vea también

Referencia

Collections.List (Módulo de F#)

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

Historial de cambios

Fecha

Historial

Motivo

Agosto de 2010

Se ha agregado un ejemplo de código.

Mejora de la información.