在这个函数中是 (a : A) (a) 的语法糖?
In this function is (a : A) syntactic sugar for (a)?
在 curry 和 compose 的这些实现中:
def uncurry[A,B,C] (f : (A => B => C)) : (A , B) => C = (a , b) => f(a) (b)
def compose [A ,B , C] (f : B => C , g : A => B) : A => C = (a : A) => f(g(a))
在 compose 实现中 (a : A)
只是 (a)
的语法糖
def compose [A ,B , C] (f : B => C , g : A => B) : A => C = (a : A) => f(g(a))
编译没有问题?
是的,但恰恰相反:(a)
是 (a:A)
的语法糖,因为编译器可以推断出 a
是 A
类型。您甚至不需要 (a)
:
的括号
def compose [A ,B , C] (f : B => C , g : A => B) : A => C = a => f(g(a))
不一定与问题相关,但对于这种特殊情况,该功能已经可用,因此您可以这样做:
def compose [A ,B , C] (f : B => C , g : A => B) : A => C = f compose g
在 curry 和 compose 的这些实现中:
def uncurry[A,B,C] (f : (A => B => C)) : (A , B) => C = (a , b) => f(a) (b)
def compose [A ,B , C] (f : B => C , g : A => B) : A => C = (a : A) => f(g(a))
在 compose 实现中 (a : A)
只是 (a)
的语法糖
def compose [A ,B , C] (f : B => C , g : A => B) : A => C = (a : A) => f(g(a))
编译没有问题?
是的,但恰恰相反:(a)
是 (a:A)
的语法糖,因为编译器可以推断出 a
是 A
类型。您甚至不需要 (a)
:
def compose [A ,B , C] (f : B => C , g : A => B) : A => C = a => f(g(a))
不一定与问题相关,但对于这种特殊情况,该功能已经可用,因此您可以这样做:
def compose [A ,B , C] (f : B => C , g : A => B) : A => C = f compose g