Funciones de orden superior

Una función de orden superior (HOF) es una función que sigue al menos una de las siguientes condiciones:

  • Asume o más funciones como argumento
  • Devuelve una función como resultado.

HOF en PHP

El siguiente ejemplo muestra cómo escribir una función de orden superior en PHP, que es un lenguaje de programación orientado a objetos:

<?php  
$twice = function($f, $v) { 
   return $f($f($v)); 
};  

$f = function($v) { 
   return $v + 3; 
}; 

echo($twice($f, 7));

Producirá la siguiente salida:

13

HOF en Python

El siguiente ejemplo muestra cómo escribir una función de orden superior en Python, que es un lenguaje de programación orientado a objetos:

def twice(function): 
   return lambda x: function(function(x))  
def f(x): 
   return x + 3 
g = twice(f)
print g(7)

Producirá la siguiente salida:

13