ラムダ式:Fun キーワード (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