Anonymus functions revisited

bruno modulix onurb at xiludom.gro
Tue Mar 22 09:05:55 EST 2005


bruno modulix wrote:
> Kay Schluehr wrote:
> 
>> Since George Sakkis proposed a new way of doing list comprehensions
>>
>> http://groups-beta.google.com/group/comp.lang.python/browse_frm/thread/ac5023ad18b2835f/d3ff1b81fa70c8a7#d3ff1b81fa70c8a7 
>>
>>
>> letting tuples-like objects (x,y,z=0) acting as functions on other
>> tuples I wonder why this would not be a good starting point of
>> rethinking anonymus functions?
>>
>> In Georges proposition the action is
>>
>>    (x,y,z=0) -> (x,y,z)
>>
>> i.e. mapping tuples on other tuples. This is equivalent to
>>
>> lambda x,y,z=0:(x,y,z)

which is in fact not a valid solution in the context of Georges' 
problem... (or I failed to get it to work !-)


>> But regarding tuples as actions by means of an arrow "->" would
>> generalize this idea:
>>
>> Mappings like that:
>>
>>    ((x,y),z)   -> x+y-z
>>
>>    ((x,y=0),z) -> None
>>
>> should be valid actions too.
>>
>> What is the audience thinking about that?
> 
> 
> IMHO, it's just lambda in disguise, and I'm not sure it's more readable 
> than lambda. You'll have to provide more arguments (sorry for the pun 
> !-) to gain my adhesion. (NB : I could use this syntax without problem, 
> it's just that we already have a syntax for this).
> 

Changing my mind after a more torough re-reading of the original thread 
and few tests... The original problem is about tuple unpacking. The 
proposed solution solves this problem, *and* can (could ?) be a 
replacement for lambdas.

hmmm... I like the idea of having a more flexible tuple unpacking with a 
function-call-like semantic, but I'm still not sure to like the idea of 
replacing lambda with the proposed syntax.

needs-some-more-thinking-on-this-ly'yrs

-- 
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for 
p in 'onurb at xiludom.gro'.split('@')])"



More information about the Python-list mailing list