ラムダ式: fun キーワード (F#)

fun キーワードは、ラムダ式、つまり匿名関数を定義するために使用されます。

構文

fun parameter-list -> expression

解説

parameter-list は、通常、名前と、必要に応じてパラメーターの型で構成されます。 より一般的には、parameter-list は任意の 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 cons pattern.
// (note that this will generate an incomplete pattern match warning)
fun (head :: tail) -> …

// A lambda expression with a list pattern.
// (note that this will generate an incomplete pattern match warning)
fun [_; rest] -> …

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

関連項目