ラムダ式: fun キーワード (F#)
ラムダ式、つまり匿名関数を定義するには、fun キーワードを使用します。
fun parameter-list -> expression
解説
parameter-list は、パラメーターの名前と型 (省略可能) で構成されます。より一般的には、parameter-list は、F# のすべてのパターンで構成できます。使用可能なすべてのパターンの一覧については、「パターン マッチ (F#)」を参照してください。有効なパラメーターのリストは、次の例が含まれています。
// Lambda expressions with parameter lists.
fun a b c -> ...
fun (a: int) b c -> ...
fun (a : int) (b : string) (c:float) -> ...
// A lambda expression with a tuple pattern.
fun (a, b) -> …
// A lambda expression with a list pattern.
fun head :: tail -> …
expression は関数の本体であり、その最後の式によって戻り値が生成されます。有効なラムダ式の例は次のとおりです。
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)
ラムダ式の使用
ラムダ式は、リストまたは他のコレクションを操作する場合や、余分な関数定義の作業を避ける場合に特に役立ちます。多くの F# ライブラリ関数では、引数として関数値を受け取ります。これらの場合にラムダ式を使用すると、特に便利です。次のコードは、リストの要素にラムダ式を適用します。この場合は、匿名関数が、リストのすべての要素に 1 を追加します。
let list = List.map (fun i -> i + 1) [1;2;3]
printfn "%A" list