Frank Samuelson <[EMAIL PROTECTED]> wrote:

>> It's also not clear how you expect this to work with anything more 
>> complex than a single expression. How do you handle statements and 
>> multiple returns?
> >
>> def foo(x, y):
>>     L = []
>>     try:
>>         if x[y] % 2:
>>             print x, y
>>             return y
>>         return x[y]
>>     except:
>>         return None
> 
> Huh?  This is trivial.  I don't see why this is so hard to grasp.
> 
> foo= function(x, y):
>      L = []
>      try:
>          if x[y] % 2:
>              print x, y
>              return y
>          return x[y]
>       except:
>           return None
> 
It is hard to grasp because you said you wanted:

    name = function(*argument_list) expression

There is no colon in your proposed syntax, and you only asked for a 
single expression in the function rather than a suite. Your 'this is 
trivial' response seems to be proposing another syntax entirely.

Unfortunately my crystal ball is away being cleaned, so I am unable to 
guess whether you meant for a function definition to be an expression 
(opening up a whole host of questions about how you nest it inside other 
expressions) or a special case of an assignment to a single name and 
wanted to disallow such things as:

foo = l[3] = function(): pass

or if you didn't mean to disallow them, what name should that function 
have.

If you are going to make syntax proposals you must be precise.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to