Funciones de Orden Superior
Explicación del concepto de funciones de orden superior y su aplicación.
CONCEPTO
Una función de orden superior, es una función que puede recibir como argumento una o más funciones y/o retornar una función como resultado.
Esto es posible ya que el lenguaje de programación Kotlin incluye en su gramática tipos de datos función.
IMPLEMENTACIÓN
Sintaxis
La sintaxis de una función de orden superior sigue la siguiente sintaxis:
fun(arg1: T, arg2: T, argfun: (Targ1, Targ2) -> Treturn): T
Ejemplo
fun calculadora(x: Int, y: Int, fn: (Int, Int) -> Int): Int {
return fn(x, y)
}
fun suma(x: Int, y: Int) = x + y
fun resta(x: Int, y: Int) = x - y
fun mult(x: Int, y: Int) = x * y
fun divis(x: Int, y: Int) = x / y
Como puede ver, la función calculadora() recibe dos Int y una función y despues aplica dicha función sobre ambos Int.
Las cuatro funciones de las operaciones (suma, resta, mult y divis), son válidas para ser pasadas como argumento a la función calculadora() ya que tienen dos argumentos de tipo Int y devuelven un tipo Int tambien.
Por tanto, podemos llamar a la función calculadora con ellas:
val x: Int = 5
val y: Int = 5
println("La suma de $x y $y es: ${calculadora(x, y, ::suma)}")
println("La resta de $x y $y es: ${calculadora(x, y, ::resta)}")
println("La multiplicación de $x por $y es: ${calculadora(x, y, ::mult)}")
println("La división de $x entre $y es: ${calculadora(x, y, ::divis)}")
/*Respuesta
La suma de 5 y 5 es: 10
La resta de 5 y 5 es: 0
La multiplicación de 5 por 5 es: 25
La división de 5 entre 5 es: 1 */
Last updated