[e-lang] Unary Prefix Now Composes with Unary Postfix
Mark S. Miller
e-lang@mail.eros-os.org
Sat, 15 Jun 2002 23:40:14 -0700
Another draft note of a resolution for the next release:
Unary Prefix Now Composes with Unary Postfix
In the C syntax tradition, unary prefix operators and unary postfix
operators can be used in the same expression, with unary postfix binding
tighter than unary prefix. In prior releases of E, we took a more
restrictive policy because 1) the standard rule is hard to remember, and
worse 2) when we used juxtaposition for call, which is a unary postfix
operation, it was visually counterintuitive for calls to bind tighter than
unary prefix operators.
Now that we've switched to the conventional dot-call syntax, objection #2 has
gone away. Though objection #1 is still valid, we've now decided to go with
tradition on this one. Between this and the previous two changes (Dot-based
Call, Dot-based Property Access), Ping's Python example
http://www.eros-os.org/pipermail/e-lang/2002-June/006704.html :
if guard.name not in frozenGuardNames:
can now be written in E as:
if (! frozenGuardNames.contains(guard.name)) {
assuming that guard has a getName() method. While this is still visually
more noisy than the Python original, it's not too bad, and it can be
instantly understood by someone coming from C syntax tradition languages
(modulo the difference between properties and instance variables).
----------------------------------------
Text by me above is hereby placed in the public domain
Cheers,
--MarkM