digitalmars.D.bugs - [Bug 186] New: 'and' and 'or' as alternatives for && and ||
- d-bugmail puremagic.com (26/26) Jun 08 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=186
- d-bugmail puremagic.com (23/23) Jun 09 2006 http://d.puremagic.com/bugzilla/show_bug.cgi?id=186
http://d.puremagic.com/bugzilla/show_bug.cgi?id=186
Summary: 'and' and 'or' as alternatives for && and ||
Product: D
Version: 0.157
Platform: Macintosh
OS/Version: Mac OS X
Status: NEW
Severity: enhancement
Priority: P5
Component: DMD
AssignedTo: bugzilla digitalmars.com
ReportedBy: barnaby daltonsgate.com
example:
if("aardvark" < "zebra" and "C" < "D")
writefln("all is right in the world");
I've found this is a small change that really helps. Especially when it has
lower precedence than &&, ||.
For example:
while(obj = getobj() && good(obj)) { ... }
actually means:
while(obj = (getobj() && good(obj)) { ... }
with the C precedence. This doesn't compile (unless obj is a boolean).
With lower precedence, the extra brackets would not be needed for this
to give the natural interpretation. I find this pattern comes up commonly,
and I miss it from higher level languages like Ruby.
--
Jun 08 2006
http://d.puremagic.com/bugzilla/show_bug.cgi?id=186
bugzilla digitalmars.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |WONTFIX
In C++, 'and' and 'or' are already alternatives for && and ||, and they have
the same precedence as && and ||. Adding them to D, but with different
precedence, is likely to cause confusion and hard to spot bugs, especially for
someone who is a long time C or C++ programmer.
The reason they were added to C++ was not because they were more readable, but
because some keyboards don't have & and | keys. This has turned out to be a
waste of time - most programmers find the "alternative tokens" to be awful and
find it easier to spend $10 on a new keyboard.
Many people believe that C and C++ (and by implication D) already have far too
many operators and too many precedence levels. Adding more will not be welcomed
- unless those new operators really solved a desperate problem. That's a pretty
high bar to overcome.
And lastly, this is a bug list. Feature enhancement requests shouldn't go here.
Discussion about feature requests should go in the newsgroups, and there are
wiki pages with lists of the more popular ones.
--
Jun 09 2006








d-bugmail puremagic.com