Funkcje wyższego rzędu

Funkcja wyższego rzędu (HOF) to funkcja spełniająca co najmniej jeden z następujących warunków -

  • Przyjmuje lub więcej funkcji jako argument
  • Zwraca funkcję jako wynik

HOF w PHP

Poniższy przykład pokazuje, jak napisać funkcję wyższego rzędu w PHP, który jest językiem programowania obiektowego -

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

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

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

Wytworzy następujący wynik -

13

HOF w Pythonie

Poniższy przykład pokazuje, jak napisać funkcję wyższego rzędu w Pythonie, który jest językiem programowania obiektowego -

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

Wytworzy następujący wynik -

13