Extending Python Syntax with @
dmq at gain.com
Fri Mar 12 00:44:36 CET 2004
On Thu, 11 Mar 2004 21:42:54 +0100, Peter Maas
<fpetermaas at netscape.net> wrote:
>>>- The advantage is also a disadvantage: a lowered barrier for
>>> new semantics could bloat the language definition. Python's
>>> strength is that it has *few* concepts that are usable in *many*
>>> places. This could be compromised by your proposal.
>> This is actually a separate issue. Adding a few @ mods to selected
>> statements does not mean that users can add their own.
> I assumed that in my response but also GvR and the Python community
> can do too much with @.
I have enormous faith in GvR and the people working with him. I can't
imagine them falling into the Perl trap (overuse of symbols in a
- Python is a readable language. lambda says "function literal",
yield says "generator", @ just says "different". Python would
be less readable if this notation would be adopted.
Readability, in this case, is in the eye of the beholder. 'lambda' to
me says 'wavelength', which I know has nothing to do with programming.
I suspect many users are like me, not enough computer science
background to know that lambda means 'function literal'.
:-)) OK, of course I was talking about the semantics within the
language framework. Otherwise you could claim that def says deaf and
for says four ;-)
I really wasn't trying to be clever with words in telling you what
comes to my mind with 'lambda'. Thinking back on my experience
learning Python, I can also say that this word, and the mystique
around "lambda calculus" also conveyed a subtle meaning of "complex",
or "advanced topic", which caused me to avoid lambdas for a few
months. I took five years of calculus in college, and I still don't
see the connection between lambda functions and calculus.
Let's focus on users of Python, many of whom are technical
professionals, but not computer scientists. All I'm saying is that
new keywords like lambda can have the opposite of the intended
simplifying effect. They can make things *seem* more complex. It all
depends on users perceptions and their background.
I was astonished to learn today that GvR himself called for the
deprecation of lambda, citing "confusing" as one of the reasons.
This guy is a language genious, yet he still understands the ordinary
users perspective. A *rare* combination.
More information about the Python-list