[Python-ideas] Another way to avoid clumsy lambdas, while adding new functionality

Ryan Gonzalez rymg19 at gmail.com
Wed Mar 5 20:44:01 CET 2014


On Tue, Mar 4, 2014 at 8:36 PM, David Mertz <mertz at gnosis.cx> wrote:

> On Tue, Mar 4, 2014 at 5:46 PM, Cameron Simpson <cs at zip.com.au> wrote:
>
>> >   foo = 1
>> >   a = $(foo + 1)
>> Definitely nicer. Still irrationally uncomfortable about the "$" though.
>> A thought, though it could break existing code (and nested tuples, alas):
>>
>>     a = (( foo + 1 ))
>>
>
> That looks like unresolvable ambiguity to me.  I confess that I am more
> comfortable with '$(...)' because I'm one of those folks who actually likes
> bash, and uses that spelling often over there (where the meaning isn't the
> *same* as this, but is enough similar for the meaning to carry over)
>
>

But this is Python, which is 10x better. And besides, that syntax gives me
GNU make nightmares.


>  Still, what does this mean?
>>     a = 3 + (( foo + 1 ))
>> I think that would need to be a syntax error, because I can't see it being
>> anything except nonsense otherwise.
>
>
I see it as:

Create an anonymous function object that adds foo to 1. Then, try and add 3
to that resulting object(which obviously would fail). It'd be kind of like:

a = 3 + (lambda: foo+1)

a.k.a:

def myfunc(): return foo+1
a = 3+myfunc

or(somewhat clearer in C++):

SomeType a = 3 + [&]() { return foo+1; };

It's a bit more obvious of the error in the C++ example(or, at least to me).

...
> --
> Keeping medicines from the bloodstreams of the sick; food
> from the bellies of the hungry; books from the hands of the
> uneducated; technology from the underdeveloped; and putting
> advocates of freedom in prisons.  Intellectual property is
> to the 21st century what the slave trade was to the 16th.
>



-- 
Ryan
If anybody ever asks me why I prefer C++ to C, my answer will be simple:
"It's becauseslejfp23(@#Q*(E*EIdc-SEGFAULT. Wait, I don't think that was
nul-terminated."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20140305/b26c4ce0/attachment.html>


More information about the Python-ideas mailing list