Securing a future for anonymous functions in Python
Steven Bethard
steven.bethard at gmail.com
Fri Dec 31 17:26:38 EST 2004
Simo Melenius wrote:
> map (def x:
> if foo (x):
> return baz_1 (x)
> elif bar (x):
> return baz_2 (x)
> else:
> global hab
> hab.append (x)
> return baz_3 (hab),
> [1,2,3,4,5,6])
I think this would probably have to be written as:
map (def x:
if foo(x):
return baz_1(x)
elif bar(x):
return baz_2(x)
else:
global hab
hab.append(x)
return baz_3(hab)
, [1,2,3,4,5,6])
or:
map (def x:
if foo(x):
return baz_1(x)
elif bar(x):
return baz_2(x)
else:
global hab
hab.append(x)
return baz_3(hab)
,
[1,2,3,4,5,6])
Note the placement of the comma. As it is,
return baz_3(hab),
returns the tuple containing the result of calling baz_3(hab):
py> def f(x):
... return float(x),
...
py> f(1)
(1.0,)
It's not horrible to have to put the comma on the next line, but it
isn't as pretty as your version that doesn't. Unfortunately, I don't
think anyone's gonna want to revise the return statement syntax just to
introduce anonymous functions.
Steve
More information about the Python-list
mailing list