Funzione List.scanBack<'T,'State> (F#)
Analogo a List.foldBack, ma restituisce sia i risultati intermedi che quelli finali.
Percorso di spazio dei nomi/modulo: Microsoft.FSharp.Collections.List
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
List.scanBack : ('T -> 'State -> 'State) -> 'T list -> 'State -> 'State list
// Usage:
List.scanBack folder list state
Parametri
folder
Tipo: 'T -> 'State -> 'StateFunzione da utilizzare per aggiornare lo stato in base agli elementi di input.
list
Tipo: 'T listElenco di input.
state
Tipo: 'StateStato iniziale.
Valore restituito
Elenco di stati.
Note
Questa funzione è denominata ScanBack negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.
Esempio
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare List.scanBack e ne viene inoltre confrontato il comportamento con 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
Piattaforme
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2.
Informazioni sulla versione
F# Runtime
Supportato in: 2.0, 4.0
Silverlight
Supportato in: 3
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.FSharp.Collections (F#)
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Agosto 2010 |
Aggiunto esempio di codice. |
Miglioramento delle informazioni. |