Charlie Taylor wrote:
root = findRoot(xBeg, xEnd, lambda x: y2+ lp*(x-x2) -wallFunc( x )[0], tolerance=1.0E-15)
Um, so which parts of this are the actual lambda?? Just from reading that, it's hard to be sure. My mind keeps wanting to break at 'lambda x: y2 + lp*(x-x2)', but when I stop to think about it, I know that it must be the entire segment between commas ('lambda x: y2 + lp*(x-x2) -wallFunc( x )[0]').
This is exactly why I don't like using lambdas. Very easy to get confused by the syntax, and (IMO) not much benefit.
I have tried using named functions instead of using lambda functions,
however, I always end up with a convoluted, hard to follow mess.
See, to my mind, the above is a bit convoluted and hard to follow. I'd prefer to see something like:
def func(x): answer = y2 + (lp * (x-x2)) - wallFunc(x)[0] return answer
root = findRoot(xBeg, xEnd, func, tolerance=1.0E-15)
(I'm hoping, of course, that y2, x2, and lp are local variables, rather than global variables...)
I find this named function to be much more clear in regards to what's part of the lambda and what's actually a parameter to findRoot(). I suppose that opinions may vary, however.
Jeff Shannon Technician/Programmer Credit International
-- http://mail.python.org/mailman/listinfo/python-list