Partager via


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

Applique une fonction aux paires d'éléments issues des deux collections, de gauche à droite, en créant ainsi un thread d'un argument d'accumulation par l'intermédiaire du calcul. Les deux tableaux d'entrée doivent avoir les mêmes longueurs, sinon une ArgumentException est levée.

Espace de noms/Chemin du module : 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

Paramètres

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

    Fonction permettant de mettre à jour l'état selon les éléments d'entrée.

  • state
    Type : 'State

    État initial.

  • array1
    Type : 'T1 []

    Premier tableau d'entrée.

  • array2
    Type : 'T2 []

    Deuxième tableau d'entrée.

Exceptions

Exception

Condition

ArgumentException

Levée lorsque les tableaux d'entrée ont des longueurs différentes.

Valeur de retour

État final.

Notes

Cette fonction se nomme Fold2 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 montre comment utiliser Array.fold2 :

// 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

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

Voir aussi

Référence

Collections.Array, module (F#)

Microsoft.FSharp.Collections, espace de noms (F#)

Historique des modifications

Date

Historique

Motif

Août 2010

Ajout d'un exemple de code

Améliorations apportées aux informations.