まず、きちんと書いた場合。
宣言時に引数の型と戻り値を指定している。
val f:(Int => Int) = (x:Int) => x + 1
括弧をとってもいいようだ。
val f:Int => Int = (x:Int) => x + 1
でも、関数の本体定義部分の括弧を取っちゃダメ
val f:Int => Int = x:Int => x + 1
宣言時に型を書かないくてもOK
val f = (x:Int) => x + 1
関数定義の部分の引数を書かなくてもOK
val f:(Int => Int) = x => x + 1
でも、次のような横着はできないらしい
val f = x => x + 1
引数が2つある場合
val f:(Int,Int) => Int = (x:Int, y:Int) => x + y + 1
引数が1つのときと同様に、以下のようにも書ける
val f = (x:Int, y:Int) => x + y + 1
val f:(Int,Int) => Int = (x, y) => x + y + 1結局、こうやって書くこと多い気がするなぁ
val f = (x:Int, y:Int) => x + y + 1