Array.scanBack<'T,'State>, fonction (F#)
Comme Array.foldBack, mais retourne les résultats intermédiaires et finaux.
Espace de noms/Chemin du module : 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
Paramètres
folder
Type : 'T -> 'State -> 'StateFonction permettant de mettre à jour l'état selon les éléments d'entrée.
array
Type : 'T []Tableau d'entrée.
state
Type : 'StateÉtat initial.
Valeur de retour
Tableau de valeurs d'état.
Notes
Cette fonction se nomme ScanBack dans les assemblys compilés. Si vous accédez à la fonction à partir d'un langage autre que F# ou par réflexion, utilisez ce nom.
Exemple
Le code suivant contraste le comportement d'Array.scan et 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
Sortie
Plateformes
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Informations de version
Runtime F#
Pris en charge dans : 2.0, 4.0
Silverlight
Prise en charge dans : 3