Espressioni lambda: parola chiave fun (F#)
La parola chiave fun è utilizzata per definire un'espressione lambda, ovvero una funzione anonima.
fun parameter-list -> expression
Note
L'elemento parameter-list è costituito da nomi e, facoltativamente, tipi di parametri. Esempi di elenchi di parametri validi includono gli elementi seguenti:
fun a b c -> ...
fun (a: int) b c -> ...
fun (a : int) (b : string) (c:float) -> ...
L'elemento parameter-list può essere composto da qualsiasi modello F#. Per un elenco completo di modelli possibili, vedere Criteri di ricerca [F#].
L'elemento expression è il corpo della funzione, di cui l'ultima espressione genera un valore restituito. Di seguito sono illustrati alcuni esempi di espressioni lambda valide:
fun x -> x + 1
fun a b c -> printfn "%A %A %A" a b c
fun (a: int) (b: int) (c: int) -> a + b * c
fun x y -> let swap (a, b) = (b, a) in swap (x, y)
Utilizzo di espressioni lambda
Le espressioni lambda sono particolarmente utili quando si desidera eseguire operazioni su un elenco o un altro insieme e si desiderare evitare lavoro aggiuntivo legato alla definizione di una funzione. Numerose funzioni della libreria F# accettano valori di funzione come argomenti e in tali casi può essere particolarmente appropriato utilizzare un'espressione lambda. Nel codice seguente viene applicata un'espressione lambda agli elementi di un elenco. In questo caso, la funzione anonima consente di aggiungere 1 a ogni elemento di un elenco.
let list = List.map (fun i -> i + 1) [1;2;3]
printfn "%A" list