Array.fold2<'T1,'T2,'State>-Funktion (F#)

Aktualisiert: August 2010

Wendet eine Funktion auf Paare von Elementen an, die aus beiden Auflistungen (von links nach rechts) stammen, wobei ein Akkumulatorargument in der Berechnung mitgeführt wird. Beide Eingabearrays müssen dieselbe Länge haben. Andernfalls wird eine ArgumentException ausgelöst.

Namespace/Modulpfad: Microsoft.FSharp.Collections.Array

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
Array.fold2 : ('State -> 'T1 -> 'T2 -> 'State) -> 'State -> 'T1 [] -> 'T2 [] -> 'State

// Usage:
Array.fold2 folder state array1 array2

Parameter

  • folder
    Typ: 'State -> 'T1 -> 'T2 -> 'State

    Die Funktion, mit der der Zustand der Eingabeelemente aktualisiert wird.

  • state
    Typ: 'State

    Der Ausgangszustand.

  • array1
    Typ: 'T1 []

    Das erste Eingabearray.

  • array2
    Typ: 'T2 []

    Das zweite Eingabearray.

Ausnahmen

Ausnahme

Bedingung

ArgumentException

Wird ausgelöst, wenn die Eingabearrays unterschiedlich lang sind.

Rückgabewert

Der Abschlusszustand.

Hinweise

Der Name dieser Funktion in kompilierten Assemblys lautet Fold2. Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.

Beispiel

Im folgenden Code wird die Verwendung von Array.fold2 veranschaulicht.

// Use Array.fold2 to perform computations over two arrays (of equal size)
// at the same time.
// Example: Add the greater element at each array position.
let sumGreatest array1 array2 =
    Array.fold2 (fun acc elem1 elem2 ->
        acc + max elem1 elem2) 0 array1 array2

let sum = sumGreatest [| 1; 2; 3 |] [| 3; 2; 1 |]
printfn "The sum of the greater of each pair of elements in the two arrays is %d." sum

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

Siehe auch

Weitere Ressourcen

Collections.Array-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

August 2010

Codebeispiel hinzugefügt.

Informationsergänzung.