Is this a good use for lambda

Terry Reedy tjreedy at udel.edu
Sat Dec 18 09:27:18 CET 2004


"Charlie Taylor" <charlie at ezweave.com> wrote in message 
news:20041217235613.1A1761E4004 at bag.python.org...
>
> I find that I use lambda functions mainly for callbacks to things like
> integration or root finding routines as follows.
>
> flow = integrate(lambda x: 2.0*pi * d(x)* v(x) * sin(a(x)),xBeg, xEnd)
>
> root = findRoot(xBeg, xEnd,
>       lambda x: y2+ lp*(x-x2) -wallFunc( x )[0], tolerance=1.0E-15)

To each there own is my philosophy.  However, with multiple arguments, I 
might prefer

def f(x): return 2.0*pi * d(x)* v(x) * sin(a(x))
flow = integrate(f, xBeg, xEnd)

def g(x): return y2+ lp*(x-x2) -wallFunc( x )[0]
root = findRoot(xBeg, xEnd, g, tolerance=1.0E-15)

even if I might use lambda initially.  (And the above is in no way a 
'mess'.)

In any case, as soon as one wants to do even two things with a function --  
plot and integrate, or integrate with two methods and compare, or ditto 
with findRoot, or calculate g(root) after findRoot, one will want a 
separate def statement.

Terry J. Reedy






More information about the Python-list mailing list