Extending Python Syntax with @

David MacQuigg 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:

Peter Maas:
>>>- 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.

David MacQuigg:
>> This is actually a separate issue.  Adding a few @ mods to selected
>> statements does not mean that users can add their own.

Peter Maas:
> 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


Peter Maas:
- 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.

David MacQuigg:
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'.

Peter Maas:
:-)) 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.

-- Dave

More information about the Python-list mailing list