<div dir="ltr">On Thu, Sep 11, 2008 at 12:34 AM, Cliff Wells <span dir="ltr"><<a href="mailto:cliff@develix.com">cliff@develix.com</a>></span> wrote:<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Wed, 2008-09-10 at 18:30 -0700, Josiah Carlson wrote:<br>
> On Wed, Sep 10, 2008 at 6:14 PM, Cliff Wells <<a href="mailto:cliff@develix.com">cliff@develix.com</a>> wrote:<br>
> > On Wed, 2008-09-10 at 17:16 -0600, Adam Olsen wrote:<br>
> [snip]<br>
> >> They're the use-case you need to justify<br>
> >> against the substantial changes you propose.<br>
> ><br>
> > I guess I don't see it as substantial to people who don't wish to use it<br>
> > (although it's quite substantial to people who do).  Overall, I think<br>
> > this is why I feel the change doesn't require a huge amount of<br>
> > justification: you aren't *forced* to use it, but if you need it, it's<br>
> > huge.  It doesn't impose any significant stylistic change on people who<br>
> > prefer the imperative style, but it opens vast doors for people wishing<br>
> > to approach problems from a functional path.<br>
><br>
> Once language syntax is added to, changed, etc., it's very difficult<br>
> to remove those additions, changes, etc., even when the feature is<br>
> rarely used, ugly, and generally a bad idea (see back-quotes `x` for<br>
> repr(x) ).  This may not seem like a big deal to you, because you want<br>
> this feature, but for the rest of us who have little (arguably no) use<br>
> for the feature, adding semantics to syntax, or adding syntax =<br>
> additional mental overhead;<br>
<br>
Again I assert the opposite: that Python is currently forced to explain<br>
the arbitrary distinction that currently exists and that a significant<br>
amount of extra syntax and language features exist to work around that<br>
distinction.  People may not clamor for the change but there's quite a<br>
few newcomers to Python who must have the distinction explained to them.</blockquote><div><br>For better or for worse, most people come to Python with imperative rather than functional language background, so the distinction is either not even realized or it usually seems "natural" when realized. Personally, I find some features to be more natural as statements (e.g. it is typically obvious whether to use a "for" loop or a list/gen. comprehension) but others unnecessarily limiting (e.g. having to write "lambda x: x.__setitem__(0,1)" instead of "lambda x: x[0]=1").<br>
<br>George<br><br></div></div></div>