誰かが「 scala の関数は右に関連付ける」と言った場合、それはどういう意味ですか?
そして、その場合、結合性はどのように機能しますかInt => Int => Int
関数型Int => Int => Int
は。と同等Int => (Int => Int)
です。言い換えれば、=>
最初に右側にあるものをグループ化するか、または、右側に関連付けられます。
この型Int => (Int => Int)
は、を受け入れる単一引数関数を定義し、Int
その戻り型は関数fromからInt
までInt
です。
では、そのような関数の例は何ですか?sum
このタイプで呼び出される関数を書くことができます:
val sum: Int => Int => Int = {
(a: Int) =>
{
(b: Int) =>
a + b
}
}
したがって、引数をsum
取り、引数を受け入れてとの合計を返す新しいa
関数を返します。b
a
b
scala> val sumWith3 = sum(3) // `sum` takes an Int argument
sumWith3: Int => Int = <function1> // notice the return type of `Int => Int`
scala> sumWith3(5) // takes an Int argument
res0: Int = 8 // returned an Int