[EMAIL PROTECTED] wrote: > I'm reading this page: > http://www.ps.uni-sb.de/~duchier/python/continuations.html > and I've found a strange usage of lambda: > > #################### > Now, CPS would transform the baz function above into: > > def baz(x,y,c): > mul(2,x,lambda v,y=y,c=c: add(v,y,c)) > > ################### > > What does "y=y" and "c=c" mean in the lambda function? > I thought it bounds the outer variables, so I experimented a little > bit: > > ################# > x = 3 > y = lambda x=x : x+10 > > print y(2) > ################## > > It prints 12, so it doesn't bind the variable in the outer scope. Primary use:
funcs = [lambda x=x: x+2 for x in range(10)] print funcs[3]() _or_ funcs = [] for x in range(10): funcs.append(lambda x=x: x+2) print funcs[3]() Try these w/o the default binding. --Scott David Daniels [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list