[REBOL] Re: false == 2 ??
From: joel:neely:fedex at: 1-Jul-2001 18:52
Hi, Graham,
This is just one of those "stumbling blocks" where there's
nothing to do but memorize the exception.
Graham Chiu wrote:
> Okay, I see it. It's one of those forth methods to shorten
> code - replacing logic with maths.
>
> But just wondering why false isn't 0 instead of 2!
>
As you correctly pointed out, consistency in identifying
FALSE with 0 would have created problems, due to the fact
that The Powers That Be decided that series positions shall
begin with one, rather than zero.
In case anyone is tempted to claim that this is for
the convenience of human beings, I'll point out that
the first house on my block is number 1262, yet I've
never heard anyone -- including children -- become
confused over the equivalence of "first" and "number
1262". Most people of my acquaintance -- including
non-geeks -- have no trouble distinguishing ordinal
numbers (first, second, third, etc.) from cardinal
numbers (0, 1, 2, ... 1262, 1268, 1274, etc.)
I assume that the decision to have true before false in the
behavior of PICK and / (as a path constructor) is by analogy
with the behavior of EITHER or IF/ELSE which have the option
for true before the option for false, so that
if/else logic-expr true-block false-block
or
either logic-expr true-block false-block
is essentially equivalent to
do pick [true-block false-block] logic-expr
(that is, without re-ordering the blocks).
*sigh* I guess we'll take what consistency we can get! ;-)
-jn-
------------------------------------------------------------
Programming languages: compact, powerful, simple ...
Pick any two!
joel'dot'neely'at'fedex'dot'com