Responding out of order. [Rhodri James]
> > For instance: when the iPhone was introduced, a lot of people praised > > it's subjectively "slick" user interface. I believe that perception of > > slickness is partly because the iPhone emulated physical interfaces > > very well so it leveraged people's intuition about the physical world. > > It was delightfully intuitive. > 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. 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. [Rhodri James] > 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" 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". [Rhodri James] > and lambda calculus at least shows up on most CompSci courses. 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. [Rhodri James] > 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. 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 very few languages use the word "lambda" to denote a lambda expression. [Rhodri James] > 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? 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. 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.
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/