Funzione Array.scanBack<'T,'State> (F#)
Analogo a Array.foldBack, ma restituisce sia i risultati intermedi che quelli finali.
Percorso di spazio dei nomi/modulo: Microsoft.FSharp.Collections.Array
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
Array.scanBack : ('T -> 'State -> 'State) -> 'T [] -> 'State -> 'State []
// Usage:
Array.scanBack folder array state
Parametri
folder
Tipo: 'T -> 'State -> 'StateFunzione per aggiornare lo stato a cui sono stati associati gli elementi di input.
array
Tipo: 'T []Matrice di input.
state
Tipo: 'StateStato iniziale.
Valore restituito
Matrice di valori di stato.
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
Nel codice riportato di seguito viene confrontato il comportamento di Array.scan e Array.scanBack.
// An array of functions that transform
// integers. (int -> int)
let ops1 =
[| fun x -> x + 1
fun x -> x + 2
fun x -> x - 5 |]
let ops2 =
[| fun x -> x + 1
fun x -> x * 5
fun x -> x * x |]
// Compare scan and scanBack, which apply the
// operations in the opposite order.
let compareOpOrder ops x0 =
let xs1 = Array.scan (fun x op -> op x) x0 ops
let xs2 = Array.scanBack (fun op x -> op x) ops x0
// Print the intermediate results
let xs = Array.zip xs1 (Array.rev xs2)
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