> For the complete documentation index, see [llms.txt](https://kurohasu.gitbook.io/fsharpabout/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kurohasu.gitbook.io/fsharpabout/functions/lambda.md).

# 名もなき匿名関数

### ラムダ式とは

抽象化した式のことで基本的には引数は1つ、残りの引数や戻り値は全て関数として扱われます\
また引数が２つある場合は全て[カリー化](/fsharpabout/functions/fc.md)されています\
ラムダ式は特に高階関数に使用されます

```
構文:(fun 引数-><式>) <引数の値>
```

{% hint style="warning" %}
ラムダ式の呼び出しには必ず引数が一つ必要になり\
全ての引数の型が一致する必要があります

また関数の宣言のように（）で引数の明示はしないでください
{% endhint %}

### 例

```fsharp
//1 a*b+cを計算するラムダ式
let x=(fun a b c ->a*b+c) 3 4 5 
let x=(fun a->
        fun b->
         fun c->a*b+c) 3 4 5 
         
//2 Hiと表示する(引数なし)
let r=(fun _ ->printfn "Hi")
//呼び出し
r 0

//3 x+yを計算するラムダ式を元に3+yを計算する
let basefunc=fun x y->x+y //自動的にxとyがバインドされる
let x3= basefunc 3 //最初の引数のxを3でbasefuncを呼び出す
//呼び出し
let n=x3 2 //=3+2

//4 x*y*zを計算するラムダ式を元に3*1.2*zを計算する
let basefunc=fun x y z->x*y*z
let bindfunc=basefunc 3.0 1.2 //x=3.0,y=1.2でbasefuncを呼び出す
//呼び出し
let k=bindfunc 2.5 //=3.0*1.2*2.5
```
