<div dir="ltr"><div><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span class="gmail-im" style="color:rgb(80,0,80);text-decoration-style:initial;text-decoration-color:initial"><span style="color:rgb(34,34,34);font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Responding out of order.<br><br>[Rhodri James] </span><br></span></span><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"><span class="gmail-im" style="color:rgb(80,0,80);text-decoration-style:initial;text-decoration-color:initial">> For instance: when the iPhone was introduced, a lot of people praised<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"><span class="gmail-im" style="color:rgb(80,0,80);text-decoration-style:initial;text-decoration-color:initial">> it's subjectively "slick" user interface. I believe that perception of<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"><span class="gmail-im" style="color:rgb(80,0,80);text-decoration-style:initial;text-decoration-color:initial">> slickness is partly because the iPhone emulated physical interfaces<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"><span class="gmail-im" style="color:rgb(80,0,80);text-decoration-style:initial;text-decoration-color:initial">> very well so it leveraged people's intuition about the physical world.<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"><span class="gmail-im" style="color:rgb(80,0,80);text-decoration-style:initial;text-decoration-color:initial">> It was delightfully intuitive.</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"><span class="gmail-im" style="color:rgb(80,0,80);text-decoration-style:initial;text-decoration-color:initial"><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"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">One of the things Apple have always been very good at is thinking hard about user interfaces.  What made the iPhone so good was that they emulated the right physical interfaces, so flipping a page when you're reading rather than pressing a button.</span></span></blockquote><br>Yes, that's exactly what I was trying to say. An important point that I think keeps getting lost in this conversation is that Python's grammar, syntax, and standard lib are it's user interface. There are very different constraints on Python's UI than there are when humans have to communicate directly with other humans. I have no problem using words like "closure" or "lambda expression" or "ternary expression" when communicating with other humans about programming language features, but jargon doesn't often make sense as part of Python's UI itself. Again, we don't use the word "ternary" in Python's ternary expressions.<br><br><div style="font-size:small;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"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">[Rhodri James] </span><br style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial"></span><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:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">Jargon becomes jargon because it's useful to enough people, for occasionally rather odd definitions of "useful".  In the case of lambda, it's shorter than "inline function definition"</span></span></blockquote></div><div class="gmail_extra" style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br>Yes, again: I understand the utility of jargon. I don't think "anonymous function" would be an improvement over "lambda" because, while it is fairly descriptive, it sacrifices too much brevity. However; the word "anonymous" is redundant. You can tell the function is anonymous by virtue of the fact that it doesn't have a name. "function" is only two characters longer than "lambda" and is actually descriptive, but it probably would have caused backwards compatibility issues (same with "func" or "fun"). "def" would have been even shorter than "lambda".<br><br><span style="text-decoration-style:initial;text-decoration-color:initial;background-color:rgb(255,255,255);float:none;display:inline">[Rhodri James]<br></span><blockquote class="gmail_quote" style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;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">and lambda calculus at least shows up on most CompSci courses.</span></blockquote><div> </div><div style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">I suppose if by "courses" you mean "course plans", I highly doubt that the majority of CS classes cover lambda calc, though; I couldn't say for sure because I, like many programmers, didn't take CS in college. There are many disciplines that get by on basic algorithms, data-structures, and a pinch of theory.<br><br><span style="font-size:small;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">[Rhodri James]</span><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">Once it settles into a group, you use it because other members of the group will understand what you mean and might not understand if you rephrase it.</span></blockquote></div></div><br>If the group you're referring to are Computer Scientists, then I don't see why they would be confused by a syntax that omits the word "lambda" since v<span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">ery few languages use the word "lambda" to denote a lambda expression.</span><br><br>[Rhodri James] </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;text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">While I don't entirely disagree with you, if I had been responsible for inventing that bit of Python I would probably have gone with "lambda" too.  It had been part of my vocabulary as a computer scientist long before I met it in a programming language.  Whether it's a *good* choice or not... possibly reusing "def" would fit people's expectations better, or perhaps it would have caused more confusion.  Who can tell?</span></blockquote><div><br>I don't see how "def" could cause more confusion than "lambda". Those who don't know what "lambda" refers to would at least have some notion of what "def" means, and those who have studied and know what lambda calculus is should also have very little trouble. I don't expect it would confuse someone well versed in computer science any more than a check-engine light would throw off an expert mechanic. <span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">They can at least google "python anonymous function" or "python lambda expression" and get results that tell you how to write a lambda expression in Python.<br></span></div><div class="gmail_extra"><br><br></div></div>