Funzione Event.scan<'U,'T,'Del> (F#)
Restituisce un nuovo evento costituito dai risultati derivanti dall'applicazione della funzione di accumulo ai valori successivi attivati nell'evento di input.
Percorso spazio dei nomi/modulo: Microsoft.FSharp.Control.Event
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
Event.scan : ('U -> 'T -> 'U) -> 'U -> IEvent<'Del,'T> -> IEvent<'U> (requires delegate)
// Usage:
Event.scan collector state sourceEvent
Parametri
collector
Tipo: 'U -> 'T -> 'UFunzione per aggiornare lo stato con ogni valore dell'evento.
state
Tipo: 'UStato iniziale.
sourceEvent
Tipo: IEvent<'Del,'T>Evento di input.
Valore restituito
Evento generato per i valori di stato aggiornati.
Note
Un elemento di stato interno registra il valore corrente del parametro dello stato.Lo stato interno non viene bloccato durante l'esecuzione della funzione di accumulo. È pertanto consigliabile verificare che l'IEvent di input non venga attivato contemporaneamente da più thread.
Questa funzione è denominata Scan negli assembly compilati.Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.
Esempio
Nell'esempio di codice riportato di seguito viene illustrato come utilizzare la funzione Event.scan.Questo codice implementa un contatore di clic semplice.Ogni volta che l'utente fa clic sul form, lo stato viene incrementato di 1 e il testo del form viene modificato per visualizzare il nuovo stato.
// This code implements a simple click counter. Every time
// the user clicks the form, the state increments by 1
// and the form's text is changed to display the new state.
open System.Windows.Forms
open System.Drawing
open Microsoft.FSharp.Core
let form = new Form(Text = "F# Windows Form",
Visible = true,
TopMost = true)
let initialState = 0
form.Click
|> Event.scan (fun state _ -> state + 1) initialState
|> Event.add (fun state -> form.Text <- state.ToString() )
Piattaforme
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informazioni sulla versione
Versioni della libreria di base F#
Supportato in: 2,0, 4,0, portabile