ラムダ式ってなに?

ラムダ式は無名関数のことを指す。
ただ、普段自分で定義しているような関数ではなくて、変数にしまえる
いわゆる式なのがラムダ式になる。

関数とラムダ式

例えば、Int型の値を受け取って5を加算し出力するだけの関数を定義してみる。

これをラムダ式に直して見ると

こうなる。

この右辺の
(num: Int) => println(num + 5)
がラムダ式になる。

別の書き方をしてみると

こんな書き方もできる。

ようはInt型の値を一つ受け取って、戻り値にUnit型(Javaでいうvoid,戻り値なし)を返す式。
その式をlambdaという変数に格納している状態になる。

ラムダ式の使いどころ

ここまでの説明だとわざわざ式にする必要はないのでは?ってなると思う。
実際これで処理として完結するならこの関数はこれで良いと思う。
しかしラムダ式は引数として渡すことができる。

今度は関数として以下の関数を定義してみる。

引数formulaの型がInt => Unitになっている。
このfunc関数は、引数にIntを受け取りUnitを返すラムダ式(formula)と、Int(num)を受け取る。
その後、引数に受け取ったラムダ式にもう一つの引数numに5を加算したものを渡して処理をさせる。

先ほど定義したラムダ式と、5を渡した結果を見てみよう。
(lambda.scala)

このような結果になる。

今回はラムダ式の中でもfunc関数の中でも値に対する処理としては5を加算するだけなので、今ひとつ利点が見出せないかもしれない。
なのでそのうちイメージしやすい例題に乗っ取ったコードを載せていきたいとおもうし、Javaのラムダ式について書くかもしれない。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする