(des mois plus tard) un petit exemple réel où lambda est utile, partiel non :
disons que vous voulez diverses coupes transversales unidimensionnelles à travers une fonction bidimensionnelle, comme des tranches à travers une rangée de collines.
quadf( x, f )
prend un 1-d f
et l'appelle pour diverses x
.
L'appeler pour des coupes verticales à y = -1 0 1 et des coupes horizontales à x = -1 0 1,
fx1 = quadf( x, lambda x: f( x, 1 ))
fx0 = quadf( x, lambda x: f( x, 0 ))
fx_1 = quadf( x, lambda x: f( x, -1 ))
fxy = parabola( y, fx_1, fx0, fx1 )
f_1y = quadf( y, lambda y: f( -1, y ))
f0y = quadf( y, lambda y: f( 0, y ))
f1y = quadf( y, lambda y: f( 1, y ))
fyx = parabola( x, f_1y, f0y, f1y )
Pour autant que je sache, partial
ne peut pas faire ça
quadf( y, partial( f, x=1 ))
TypeError: f() got multiple values for keyword argument 'x'
(Comment ajouter les balises numpy, partial, lambda à cela ?)