On Thu, Jun 25, 2015 at 2:53 PM, fl <rxjw...@gmail.com> wrote:
> Hi,
>
> I read a tutorial on lambda on line. I don't think that I am clear about
> the last line in its example code. It gives two parameters (22, 23).
> Is 22 for n, and 23 for x? Or, it creates two functions first. Then,
> each function gets 22 while the other function gets 23?
>
>
>>>> def make_incrementor (n): return lambda x: x + n
>>>>
>>>> f = make_incrementor(2)
>>>> g = make_incrementor(6)
>>>>
>>>> print f(42), g(42)
> 44 48
>>>>
>>>> print make_incrementor(22)(33)

make_incrementor is a function that takes an argument n. It returns a
function that takes an argument x. So when you do make_incrementor(22)
that passes 22 to make_incrementor as the value of n, and when you do
make_incrementor(22)(33), that also passes 22 to make_incrementor as
the value of n, and then it passes 33 to the returned function as the
value of x.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to