<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Fri, Aug 10, 2018 at 6:21 PM Abe Dillon <<a href="mailto:abedillon@gmail.com">abedillon@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">[<span style="font-size:12.8px;text-align:left;white-space:nowrap;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Neil Girdhar</span>]</div><div dir="ltr"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span>I </span>prefer partial since many programmers studied computer science</span></blockquote></div><div dir="ltr"><div> <br>Many did not. I studied electrical engineering and wouldn't have been able to tell you what the word 'partial' meant four years ago even though I've been programming in one form or another since the late nineties. Many programmers are scientists, engineers, financial analysts, etc. I'm pretty sure I know what a closure is or what currying is, but if you put me on the spot, I'd probably turn to Wikipedia to make sure I don't screw up the definition.<br><br>[Neil Girdhar]<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">It makes the concepts easier to google.</span></blockquote><br>That can be an important criteria, but it can also be a red-herring. If an implementation is clear enough, few people would have to google it. If, however, you use obscure enough words like "lambda", people will google it every day and still find it confusing. The ternary expression is difficult to google if you don't know the jargon "ternary", but there's less of a need to google it because it's pretty obvious how it works based simply on its implementation.<br><br>[Steven D'Aprano]<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote></div></div><div dir="ltr"><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">It's a clear, *generic* meaning that doesn't have any association with<span> <br></span></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">partial application.</span><br style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">We'd be trying to create that association from scratch.</span></blockquote></div></div><div dir="ltr"><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote><div><br>Sure, that's a good point. I don't think that sounds like such a big problem, but I also don't hate 'partial'. I just prefer 'given'.<br>At any rate, I don't find the google-ablilty argument super strong because there are many constructs that are difficult to google, but still pretty great (e.g. comprehensions).<br></div></div></div></blockquote><div>Not that it matters, but comprehension is a standard term in mathematics and computer science apparently:</div><div><br></div><div><a href="https://en.wikipedia.org/wiki/List_comprehension">https://en.wikipedia.org/wiki/List_comprehension</a><br></div><div><a href="https://en.wikipedia.org/wiki/Set-builder_notation">https://en.wikipedia.org/wiki/Set-builder_notation</a> <br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><br>[Steven D'Aprano]</div></div></div><div dir="ltr"><div><div><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="m_712258950160403596gmail-im" style="color:rgb(80,0,80);font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> Words like 'partial', 'curry', 'lambda', and 'closure' are fine<br></span><span class="m_712258950160403596gmail-im" style="color:rgb(80,0,80);font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> for text books, published papers, and technical discussion,</span><span class="m_712258950160403596gmail-im" style="color:rgb(80,0,80);font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">And programmers.</span><br></blockquote> <br></div></div></div><div dir="ltr"><div><div>Yes, technical discussion among programmers.<br><br style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">[Steven D'Aprano]</span></div></div></div><div dir="ltr"><div><div><br style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Programming is a technical skill with its own jargon. Classes,<span> <br></span></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">inheritence, exceptions, trampolining, processes, threads, protocols,<span> <br></span></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">imports, decorator, builders... we are happy with all those, why should<span> <br></span></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">we fear partial and lambda?</span></blockquote><br></div></div></div><div dir="ltr"><div><div>I get that programming carries it's own jargon and I understand that it has a beneficial function. It can facilitate concise communication of nuanced concepts. It can also be a needlessly confusing way to convey otherwise simple concepts. In the latter case, it can feel like the intent is to create an air of superiority through esoteric language. I feel like "curry" and "lambda" are needlessly un-descriptive and confusing. "partial" really isn't that bad, I just prefer "given" because I think it's pretty clear. I've never heard of "trampolining", but if I had to guess: it's probably related to recursion that involves more than one function?<br><br>I suspect that most programmers couldn't describe the difference between a type and a class.<br>I suspect that most programmers couldn't tell you the difference between an exception or an error.<br>I know that lots of programmers refer to the "__init__" method as a "constructor" instead of an "initializer".<br><br>Precision is less of a problem In a programming language. `func.given` doesn't have dozens of possible meanings. It's meaning has to be completely unambiguous to the machine.<br><br><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">[Steven D'Aprano]</span></div></div></div><div dir="ltr"><div><div><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="m_712258950160403596gmail-im" style="color:rgb(80,0,80);font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> but I think<br></span><span class="m_712258950160403596gmail-im" style="color:rgb(80,0,80);font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> they would (or do in the case of 'lambda') harm Python.</span><span class="m_712258950160403596gmail-im" style="color:rgb(80,0,80);font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">That's an extreme overreaction.</span></blockquote></div></div></div><div dir="ltr"><div><div><div><br>Extreme? I thought it was a rather benign opinion. I'm not exactly frothing at the mouth here. It's not like I'm declaring holy war on Python for using the word 'lambda'. I just think it was a mistake (and thatdeath should come to all non-believers).<br><br><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">[Steven D'Aprano]</span></div></div></div></div><div dir="ltr"><div><div><div><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Do you mean to imply that there are people who looked at Python, loved<span> <br></span></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">the language, but decided to use something else because they didn't like<span> <br></span></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">the choice of the keyword "lambda"?</span></blockquote><br></div></div></div></div><div dir="ltr"><div><div><div>No. Not at all. Is that what you got out of my sentence? Am I really the one being extreme?<br></div></div></div></div></blockquote><div><br></div><div>I didn't think you were being extreme at all.  I think you're making a reasonable point about keeping things simple.</div><div><br></div><div>I disagree with you though when it comes to avoiding the technical terms.  It's easier for people new to a field to learn the jargon of that field than it is to try to make it easier for them and by essentially creating a whole lot more technical jargon.  (Even if that jargon uses common words.)</div><div><br></div><div>Your idea for "given" isn't obviously doing a partial function application.  Someone might wonder if "given" is setting thread local storage, or setting attributes on a callable class, or opening context managers at call time…</div><div>  </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><br><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">[Steven D'Aprano]<br></span></div></div></div></div><div dir="ltr"><div><div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">If not, in what way is Python harmed? Would it be faster if the keyword<span> <br></span></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">was "function", or use less memory, or more expressive?</span></blockquote></div></div></div></div><div dir="ltr"><div><div><div><div><br>I didn't realize I'd hit such a nerve. I think there are better ways that anonymous functions could have been implemented.  I've already said in past discussions, I think the expression should come before the signature because the signature is often obvious from context so placing it before the logic is kinda noisy. I don't know what the best syntax would have been, but I refuse to believe that an esoteric word from an esoteric branch of calculus with an arbitrary etymology was the absolute best choice available. I think the harm that choice caused is relatively minor, but I don't think it was a great choice. I'm truly sorry if I hurt your feelings.<br><br><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">[Steven D'Aprano]</span></div></div></div></div></div><div dir="ltr"><div><div><div><div><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Remember that to millions of programmers in the world, "function" is<span> <br></span></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">just as much an obscure foreign piece of jargon they have to memorise as<span> <br></span></span><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">"lambda" is to English-speakers.</span></blockquote></div></div></div></div></div><div dir="ltr"><div><div><div><div><div><br>Maybe we should use Egyptian Hieroglyphs then. Even the playing field. It doesn't matter anyway, right? It's all nonsense to someone...<br><br>Honestly, I don't think 'partial' is that bad. I just wanted to support your own comment:</div></div></div></div></div></div><div dir="ltr"><div><div><div><div><div><br><br style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">although possibly a less jargon name would be nicer:</span><br style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">    add1 = add.given(1)</span></blockquote></div></div></div></div></div></div><div dir="ltr"><div><div><div><div><div><div><br>But you seem to have some grudge against me. I don't get all the outrage over what I thought was a fairly benign post.<br>Did I do something to make you so angry at me? I'd like to resolve whatever it is instead of having to deal with this every time I post.</div></div></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 10, 2018 at 2:09 AM, Steven D'Aprano <span dir="ltr"><<a href="mailto:steve@pearwood.info" target="_blank">steve@pearwood.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Thu, Aug 09, 2018 at 01:32:00PM -0500, Abe Dillon wrote:<br>
> I'd like to push for the less jargon-y `func.given()` version if this gains<br>
> traction. Not only is it shorter, it's a much more common term with a clear<br>
> meaning. <br>
<br>
</span>It's a clear, *generic* meaning that doesn't have any association with <br>
partial application.<br>
<br>
<a href="https://www.google.com/search?q=function+given" rel="noreferrer" target="_blank">https://www.google.com/search?q=function+given</a><br>
<br>
We'd be trying to create that association from scratch.<br>
<span><br>
<br>
> Words like 'partial', 'curry', 'lambda', and 'closure' are fine<br>
> for text books, published papers, and technical discussion,<br>
<br>
</span>And programmers.<br>
<br>
Programming is a technical skill with its own jargon. Classes, <br>
inheritence, exceptions, trampolining, processes, threads, protocols, <br>
imports, decorator, builders... we are happy with all those, why should <br>
we fear partial and lambda?<br>
<span><br>
<br>
> but I think<br>
> they would (or do in the case of 'lambda') harm Python.<br>
<br>
</span>That's an extreme overreaction.<br>
<br>
Do you mean to imply that there are people who looked at Python, loved <br>
the language, but decided to use something else because they didn't like <br>
the choice of the keyword "lambda"?<br>
<br>
If not, in what way is Python harmed? Would it be faster if the keyword <br>
was "function", or use less memory, or more expressive?<br>
<br>
Remember that to millions of programmers in the world, "function" is <br>
just as much an obscure foreign piece of jargon they have to memorise as <br>
"lambda" is to English-speakers.<br>
<span class="m_712258950160403596HOEnZb"><font color="#888888"><br>
<br>
-- <br>
Steve<br>
</font></span><div class="m_712258950160403596HOEnZb"><div class="m_712258950160403596h5">_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
</div></div></blockquote></div><br></div>

<p></p>

-- <br>
<br>
--- <br>
You received this message because you are subscribed to a topic in the Google Groups "python-ideas" group.<br>
To unsubscribe from this topic, visit <a href="https://groups.google.com/d/topic/python-ideas/jOMinivFCcQ/unsubscribe" target="_blank">https://groups.google.com/d/topic/python-ideas/jOMinivFCcQ/unsubscribe</a>.<br>
To unsubscribe from this group and all its topics, send an email to <a href="mailto:python-ideas+unsubscribe@googlegroups.com" target="_blank">python-ideas+unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a href="https://groups.google.com/d/optout" target="_blank">https://groups.google.com/d/optout</a>.<br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org" target="_blank">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
<br>
-- <br>
<br>
--- <br>
You received this message because you are subscribed to a topic in the Google Groups "python-ideas" group.<br>
To unsubscribe from this topic, visit <a href="https://groups.google.com/d/topic/python-ideas/jOMinivFCcQ/unsubscribe" rel="noreferrer" target="_blank">https://groups.google.com/d/topic/python-ideas/jOMinivFCcQ/unsubscribe</a>.<br>
To unsubscribe from this group and all its topics, send an email to <a href="mailto:python-ideas%2Bunsubscribe@googlegroups.com" target="_blank">python-ideas+unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a href="https://groups.google.com/d/optout" rel="noreferrer" target="_blank">https://groups.google.com/d/optout</a>.<br>
</blockquote></div></div>