ラムダ式:楽しいキーワード (F#)Lambda Expressions: The fun Keyword (F#)

funキーワードは、ラムダ式、つまり匿名関数を定義するために使用されます。The fun keyword is used to define a lambda expression, that is, an anonymous function.

構文Syntax

fun parameter-list -> expression

RemarksRemarks

パラメーターリストは、通常、名前と、必要に応じてパラメーターの型で構成されます。The parameter-list typically consists of names and, optionally, types of parameters. 一般的に、パラメーター リストF# のパターンで構成することができます。More generally, the parameter-list can be composed of any F# patterns. 使用可能なパターンの完全な一覧については、「パターン一致」を参照してください。For a full list of possible patterns, see Pattern Matching. 有効なパラメーターの一覧を次の例に示します。Lists of valid parameters include the following examples.

// 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 -> …

は関数の本体であり、の最後の式で戻り値が生成されます。The expression is the body of the function, the last expression of which generates a return value. 有効なラムダ式の例を次に示します。Examples of valid lambda expressions include the following:

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)

ラムダ式の使用Using Lambda Expressions

ラムダ式は、リストまたは他のコレクションに対して操作を実行し、関数を定義する余分な作業を避ける必要がある場合に特に便利です。Lambda expressions are especially useful when you want to perform operations on a list or other collection and want to avoid the extra work of defining a function. 多くF#のライブラリ関数は関数の値を引数として受け取り、そのような場合にラムダ式を使用すると特に便利です。Many F# library functions take function values as arguments, and it can be especially convenient to use a lambda expression in those cases. 次のコードは、リストの要素にラムダ式を適用します。The following code applies a lambda expression to elements of a list. この場合、匿名関数はリストのすべての要素に1を追加します。In this case, the anonymous function adds 1 to every element of a list.

let list = List.map (fun i -> i + 1) [1;2;3]
printfn "%A" list

関連項目See also