Condividi tramite


Funzione Seq.fold<'T,'State> (F#)

Applica una funzione a ogni elemento dell'insieme, eseguendo il threading di un argomento dell'accumulatore attraverso il calcolo. Se la funzione di input è f e gli elementi sono i0...iN, tale funzione calcola f (... (f s i0)...) iN.

Percorso spazio dei nomi/modulo: Microsoft.FSharp.Collections.Seq

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

// Signature:
Seq.fold : ('State -> 'T -> 'State) -> 'State -> seq<'T> -> 'State

// Usage:
Seq.fold folder state source

Parametri

  • folder
    Tipo: 'State -> 'T -> 'State

    Funzione che aggiorna lo stato con ogni elemento dalla sequenza.

  • state
    Tipo: 'State

    Stato iniziale.

  • source
    Tipo: seq<'T>

    Sequenza di input.

Eccezioni

Eccezione

Condizione

ArgumentNullException

Generata quando la sequenza di input è Null.

Valore restituito

Risultato finale del calcolo.

Note

Questa funzione è denominata Fold negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.

Esempio

Nel codice seguente viene illustrato come utilizzare Seq.fold per implementare una funzione che calcoli la somma degli elementi di una sequenza.

let sumSeq sequence1 = Seq.fold (fun acc elem -> acc + elem) 0 sequence1
Seq.init 10 (fun index -> index * index)
|> sumSeq
|> printfn "The sum of the elements is %d."

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

Vedere anche

Riferimenti

Modulo Collections.Seq (F#)

Spazio dei nomi Microsoft.FSharp.Collections (F#)

Cronologia delle modifiche

Data

Cronologia

Motivo

Agosto 2010

Aggiunto esempio di codice.

Miglioramento delle informazioni.