Funções de ordem superior

Uma função de ordem superior (HOF) é uma função que segue pelo menos uma das seguintes condições -

  • Assume ou mais funções como argumento
  • Retorna uma função como resultado

HOF em PHP

O exemplo a seguir mostra como escrever uma função de ordem superior em PHP, que é uma linguagem de programação orientada a objetos -

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

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

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

Ele produzirá a seguinte saída -

13

HOF em Python

O exemplo a seguir mostra como escrever uma função de ordem superior em Python, que é uma linguagem de programação orientada a objetos -

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

Ele produzirá a seguinte saída -

13