scala中函数的结合性

scala中函数的结合性,scala,Scala,当有人说“scala中的函数关联到右边”时,这是什么意思 在Int=>Int=>Int的情况下,关联性是如何工作的呢Int=>Int函数类型等同于Int=>(Int=>Int)。换句话说,=>首先将事物分组在右侧,或者是右关联的 类型Int=>(Int=>Int)定义了一个单参数函数,该函数接受Int,其返回类型是从Int到Int的函数 那么,这样一个函数的例子是什么?我们可以使用以下类型编写名为sum的函数: val sum: Int => Int => Int = { (a:

当有人说“scala中的函数关联到右边”时,这是什么意思


Int=>Int=>Int
的情况下,关联性是如何工作的呢
Int=>Int
函数类型等同于
Int=>(Int=>Int)
。换句话说,
=>
首先将事物分组在右侧,或者是右关联的

类型
Int=>(Int=>Int)
定义了一个单参数函数,该函数接受
Int
,其返回类型是从
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
scala>val-sumWith3=sum(3)/`sum`接受一个Int参数
sumWith3:Int=>Int=//注意返回类型`Int=>Int`
scala>sumWith3(5)//接受一个Int参数
res0:Int=8//返回了一个Int

我可以将val-sum:Int=>Int=>Int写为val-sum:(a:Int)(b:Int):Int吗?