Una función de orden superior es la que cumple con las siguientes condiciones:

  • Puede recibir como parámetro otra u otras funciones.
  • Puede regresar una función

Por ejemplo:

// Función que calcula el cuadrado de un número

def cuadrado(x: Int): Int =

     x * x

// Función que calcula el cubo de un número

def cubo(x: Int): Int =

     x * x * x

// Función que recibe como parámetro una función

def calculo(f: Int => Int, x: Int): Int =

     f(x)

// Uso de función para cuadrado

calculo(cuadrado, 3)      //> res0: Int = 9

// Uso de función para cubo

calculo(cubo, 3)             //> res1: Int = 27

Una función de orden superior al inicio me pareció muy similar a los punteros a función que se podrán hacer en C++, pero en Scala es más transparente su uso.

Leave a Reply

Your email address will not be published. Required fields are marked *
You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>