What is a higher-order function?
Explanation
Get an explanation when it's available:
Theory
  • Higher-order Functions
    Scala allows the definition of higher-order functions. These are functions that take other functions as parameters, or whose result is a function. Here is a function apply which takes another function f and a value v and applies function f to v:
    def apply(f: Int => String, v: Int) = f(v)
    Note: methods are automatically coerced to functions if the context requires this.
    Read more: Scala documentation
  • Higher-order Functions
    Here is another example of usage of higher-order functions:
    class Decorator(left: String, right: String) {
      def layout[A](x: A) = left + x.toString() + right
    }
    object QuizfulTest extends App {
      def apply(f: Int => String, v: Int) = f(v)
      val decorator = new Decorator("[", "]")
      println(apply(decorator.layout, 2015))
    }
    Execution yields the output:
    [2015]
    In this example, the method decorator.layout is coerced automatically to a value of type Int => String as required by method apply. Please note that method decorator.layout is a polymorphic method (i.e. it abstracts over some of its signature types) and the Scala compiler has to instantiate its method type first appropriately.
    Read more: Scala documentation

Follow CodeGalaxy

Mobile Beta

Get it on Google Play
Send Feedback
Keep exploring
Scala quizzes
Cosmo
Sign Up Now
or Subscribe for future quizzes