這裏是我的功能:如何執行接受並返回另一個的用戶定義函數?
def partial1[A, B, C](a: A, f: (A, B) => C): B => C = (b: B) => f(a, b)
> partial1: [A, B, C](a: A, f: (A, B) => C)B => C
在這裏,我調用該函數partial1
:
def fun(a: Int, b: Int) = a + b
> fun: (a: Int, b: Int)Int
val r = partial1(1, fun)
> r : Int => Int = <function1>
r(fun(1,3))
> res0: Int = 5
所以r
是一個函數,它接受一個函數作爲參數和返回(1個參數的函數)一Function1
。 Int => Int
應該不是Int, Int
,因爲兩個Int
是函數參數嗎?
爲什麼我不能執行Partial1
像partial1(1,(fun(1,3)))
這會導致編譯器錯誤:type mismatch; found : Int required: (?, ?) => ?
?
在哪個位置出現類型不匹配? –
(Scala編譯器通常會打印有問題的代碼行並指向此行中的特定位置。) –
@Sarge Borsch錯誤在行「partial1(1,fun(2,3))」 –