Fonctions d’ordre supérieur
On parle de fonction d’ordre supérieur quand cette fonction :
prend une ou plusieurs fonctions en argument
renvoie une fonction
Chacune de ces deux propriétés est possible en Python. Il s’agit souvent d’un moyen rendre un code plus modulaire en séparant les logiques internes.
[1]:
# Un exemple de fonctions que l'on peut composer entre elles
def pain(func):
def wrapper():
print("</''''''''''\>")
func()
print("<\__________/>")
return wrapper
def garniture(func):
def wrapper():
print(" OO tomate OO ")
func()
print(" ~~ salade ~~ ")
return wrapper
def jambon():
print(" -- jambon -- ")
sandwich = pain(garniture(jambon))
print("Bonne appétit")
print()
sandwich()
Bonne appétit
</''''''''''\>
OO tomate OO
-- jambon --
~~ salade ~~
<\__________/>
Exercices
Ecrire le corps de la fonction suivante:
def deriv(func, epsilon=1e-6):
""" renvoie la fonction dérivée de func
Le calcul de la dérivée est fait par différence finie:
f_prime(x) = ( f(x+epsilon) - f(x) ) / epsilon
"""
pass