神刀安全网

Scala: HOF (Higher-Order Function)

Scala allows the definition of higher-order function. These are functions that take other functions as parameters, or whose result is a function.

A higher-order function, as opposed to a first-order function, can have one of three forms:

  • One or more of its parameters is a function, and it returns some value.
  • It returns a function, but none of its parameters is a function.
  • Both of the above: One or more of its parameters is a function, and it returns a function.

If you have followed this series, you have seen a lot of usages of higher-order functions of the first type: We called methods like map, filter, or flatMap and passed a function to it that was used to transform or filter a collection in some way. Very often, the functions we passed to these methods were anonymous functions.

Example: [map]

object HOF {      def main(args: Array[String]) {       val list = List(         ("Bala", "S"),         ("Balamanikandan", "T"),         ("Karthik", "P"),         ("Karthik", "S"),         ("Maharajothi", "T"),         ("Meenatchi", "T"))        // Higher order function       val nameList = list.map(n => getName(firstName = n._1, lastName = n._2))        println("Result: " + nameList)      }    def getName(firstName: String, lastName: String): String = firstName + "." + lastName  }

Here the map function takes a getName function as a parameter. This is called HOF (Higher order function).

Output:

Scala: HOF (Higher-Order Function)

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Scala: HOF (Higher-Order Function)

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址