Array.scanBack<'T,'State>-Funktion (F#)
Wie Array.foldBack, gibt jedoch das Zwischen- und Endergebnis zurück.
Namespace/Modulpfad: 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
Parameter
folder
Typ: 'T -> 'State -> 'StateDie Funktion, mit der der Zustand der Eingabeelemente aktualisiert wird.
array
Typ: 'T []Das Eingabearray.
state
Typ: 'StateDer Ausgangszustand.
Rückgabewert
Das Array von Zustandswerten.
Hinweise
Der Name dieser Funktion in kompilierten Assemblys lautet ScanBack. Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.
Beispiel
Der folgende Code kontrastiert das Verhalten von Array.scan und 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
Plattformen
Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2
Versionsinformationen
F#-Runtime
Unterstützt in: 2.0, 4.0
Silverlight
Unterstützt in: 3