Scala 中的高阶函数

Higher order function in scala

def map2(fun: Int=>Int)(a_list: List[Int]): List[Int] ={
   if (a_list.isEmpty){
     return List()
   } else{
     return fun(a_list.head)::map2 fun(a_list.tail)
   }
}

它一直给我这个错误:

You can make this conversion explicit by writing `map2 _` or `map2(_)(_)` instead of `map2`.
    return fun(a_list.head)::map2 fun(a_list.tail)
                             ^

您忘记了一些括号

def map2(fun: Int=>Int)(a_list: List[Int]): List[Int] = {
   if (a_list.isEmpty){
     List()
   } else {
     fun(a_list.head) :: map2(fun)(a_list.tail)
   }
}