"Peter Otten" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] >>>> Please help, is there way to use sub-expressions in lambda? >>>> For example, if I want to calculate sin(x^2)+cos(x^2) I must code: >>>> lambda x: sin(x*x)+cos(x*x) >>>> How to make x*x to be evaluated once? >>> >>>>>> (lambda x: [sin(x2) + cos(x2) for x2 in [x*x]][0])(.5) == sin(.5*.5) >>>>>> + >>> cos(.5*.5) >>> True >>> >>> The real answer is of course: Use a function. >> >> But what about something like >> >> lambda x: sin(y)+cos(y) where y=x*x >> >> ? >> May be this could be a PEP? If there is no straight way to do this. > > def f(x): > y = x*x > return sin(y) + cos(y) > > What is not straightforward about that?
This code is needed once in a map, so I don't want 3+ extra lines. Solution seemed so simple... I always considered python as languague, where simple things do not require extensive coding. Moreover, this construction is common thing in functional programming. -- http://mail.python.org/mailman/listinfo/python-list