Why is there no or or and ?
Nick Sabalausky
a at a.a
Fri Feb 17 09:27:27 PST 2012
"F i L" <witte2008 at gmail.com> wrote in message
news:iylkhrwcbscmfwsdxljg at forum.dlang.org...
> Nick Sabalausky wrote:
>>
>> You're talking about very minor details that are trivial to learn (I was
>> only about 12 or 13 when I learned C). The prodictivity drop in these
>> cases is *purely* a *minor* upfront cost, and with no ongoing cost (but
>> does have ongoing *benefits* because it's designed specifically with
>> *it's own* domain in mind instead being hampered by unnecessary ties to
>> some other domain).
>
> I just don't see an argument for why we *shouldn't* make mathematical
> operations in code match those we where taught as children as close as
> possible.
>
When all else is equal, yes, certainly. Which is why we use + as addition,
for example. But all else is often not equal. For instance, ";" is much more
noticable than "." so it's a much better choice for large-grained separation
(ie, separating statements).
>
> yes i agree. I'm not really a fan of using ':=' for assignment because of
> it's keystroke length, even if it *does* make more sense. Still, I don't
> see why '==' couldn't be 'is' and '!=' couldn't be 'not'. Thought this
> might get hard to read with all the 'and'/'or's everywhere:
>
> a: = 0
> b: = new Foo
> c: = "Bar"
>
> case a is 0 and b not null and c is "Bar" { ... } // hard to read
> case a == 0 and b !is null and c == "Bar" { ... } // better than:
> case a == 0 && b !is null && c == "Bar" { ... }
I find:
case a == 0 && b !is null && c == "Bar" { ... }
much easier to read than:
case a == 0 and b !is null and c == "Bar" { ... }
Since the former uses a totally different character set for the operators,
my eyes can parse it at a glance. With the latter, I have to actually go
through and read it. The "and" and "or" just visually blend together with
all the other words and variables.
More information about the Digitalmars-d
mailing list