On 7 mai, 23:38, globalrev <[EMAIL PROTECTED]> wrote: > i have a rough understanding of lambda but so far only have found use > for it once(in tkinter when passing lambda as an argument i could > circumvent some tricky stuff). > what is the point of the following function? > > def addn(n): > return lambda x,inc=n: x+inc
It returns a function that accept one argument and return the result of the addition of this argument with the argument passed to addn. FWIW, Python's lambda is just a shortcut to create a very simple function, and the above code is canonically written as: def makeadder(n): def adder(x): return n + x return adder > if i do addn(5) it returns > (snip) > <function <lambda> at 0x01D81830> > > ok? so what do i write to make it actually do something. add5 = addn(5) add5(1) => 6 add5(2) => 7 add42 = addn(42) add42(1) => 43 > and is the > inc=n necessary i cant do x+n? In this case, it's not. This version does exactly the same thing AFAICT: def addn(n): return lambda x: x+n -- http://mail.python.org/mailman/listinfo/python-list