Saltar a contenido

Sesión 04. Funciones de alto orden

Conceptos

Funciones son ciudadanos de primera clase

  • No hay diferencia entre valores y funciones, una función se considera un valor
  • Una función puede entrar cómo argumento
  • Una función puede retornar otra función

Funciones anónimas

  • Es un valor que representa una función
  • Se definen como valores directamente
(x:Int, y:Int):Int => x+y

def x = (x:Boolean, y:Int):Int => if x y else y+1

Tipos de funciones

\[ (x_i, x_j, \cdots, x_n) => x_t \]
(Int, Int) => Int
(Int, Boolean, Int) => Int
(Int, Boolean) => (Int => Int)
(Int, (Int=>Boolean)) => (Boolean => Int)

Currificación

  • Transformar las funciones de más de un argumento en llamados sucesivos de funciones de 1 sólo argumento
  • Esto va ser especialmente util cuando veamos operaciones binarias