ぶろぐ

日記です

関数リテラル


//どちらも結果は同じですな
//jsと同じで、無名関数を生成して変数に突っ込むか、普通に関数を生成するか、の違いみたい

//scala初心者には関数リテラルの方はパッと頭に入ってこない。しかし記号がたくさんあって関数型っぽいかっこよさを感じる
//…と思ったけど、多分関数リテラルのパターン(構文)を覚えれば問題ないな
//(引数名: 型) => {処理}: 戻り値の型

scala> val isEven = (x: Int) => x % 2 == 0
isEven: Int => Boolean = <function1>

scala> def isEvenDef(x: Int) = { x % 2 == 0 }
isEvenDef: (x: Int)Boolean

scala> isEven(2)
res16: Boolean = true

scala> isEven(1)
res17: Boolean = false

scala> isEvenDef(2)
res19: Boolean = true

scala> isEvenDef(1)
res18: Boolean = false


// { } あったほうがわかりやすいなー
scala> val isEven = (x: Int) => {x % 2 == 0}
isEven: Int => Boolean = <function1>