在这个函数中是 (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) 的语法糖,因为编译器可以推断出 aA 类型。您甚至不需要 (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