Securing a future for anonymous functions in Python

Steven Bethard steven.bethard at gmail.com
Fri Dec 31 23:26:38 CET 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