Función de orden superior

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En Matemática o Informática funciones de orden superior son funciones que cumplen una de dos:

  1. Tomar una o más funciones como entrada
  2. Devolver una función como salida

En Matemática estas funciones se llaman operadores o funcionales .

En Informática se pueden crear en numerosos lenguajes de programación pero son particularmente frecuentes en los que incorporan el paradigma de programación funcional. Esto quiere decir que en la programación funcional las funciones son consideradas "ciudadanos" de primera clase. Pueden usarse como parámetros para otras funciones. Una función también puede ser asignada a un símbolo o variable, permitiendo la selección dinámica de una función apropiada según las circunstancias.[1]

Ejemplos en varios lenguajes[editar]

En Python[editar]

def f (x):
   return x+3

def g (fu, x):
   return fu (x) * fu (x)

print g (f, 7)

En Haskell[editar]

f:: Int-> Int
f x = x+3

g:: (Int-> Int) -> Int -> Int
g fu x = fu x * fu x

main = do
    putStrLn "resultado ="++show $ g f 7

En Scala[editar]

type func = Int => Int

object FuncionesSuperiores {
    def f (x:Int): Int = x+3

    def g (fu: func , x:Int) = {
        fu(x)*fu(x)
    }

    def main(args: Array[String]) {
        println (g(f,7))
    }
}


Referencias[editar]

  1. http://ademirar.wordpress.com/2010/08/28/programacion-funcional-para-el-resto-de-nosotros/