【问题标题】:In this function is (a : A) syntactic sugar for (a)?在这个函数中是 (a : A) (a) 的语法糖?
【发布时间】:2015-12-14 02:12:25
【问题描述】:

在 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))

编译没有问题?

【问题讨论】:

    标签: scala syntax syntactic-sugar


    【解决方案1】:

    是的,但反过来:(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
    

    【讨论】:

      猜你喜欢
      • 2012-02-13
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-26
      • 2016-10-28
      • 1970-01-01
      相关资源
      最近更新 更多