[REBOL] Re: On ordinal and cardinal numbers...
From: jeff:rebol at: 7-Jul-2001 13:40
> I assumed that the other option that had been raised
> (having some sort of global flag that would switch all
> existing words between 1- and 0-origin behavior) was not
> acceptable/feasible.
A setting verses replicating all the series actions for zero
based indexing.
If you globally set your base you'll break at least half the
scripts you DO, pretty much forever. Some algorithms will be
agnostic to the base, but many will not (as Joel Neely has
been showing). Programmers shouldn't have to write their
code twice for each base that your REBOL might be running
under.
I tongue and cheek mentioned before about a NEEDS field:
REBOL [Title: "Mostly portable" index: 0] ...
I've been contemplating that idea:
A zero based script DOes a 1 based script (the default)
which in turn DOes a zero based script -- etc. Code from
the 1 based script calls code from the 0 based script, so
REBOL needs to go "Oh, this code over here wants zero, that
code wants 1, etc. okay... Now the last 0 based script takes
some function that operates on series from a 1 based script
that it DOes, binds this into one of its objects containing
a number of other functions that operate on series, molds it
and stuffs it through a port, which is sucked out on the
other side of the Internet by a 1 based script that uses the
object to calculate your bank balance ... hmm.. how to keep
track of which base belongs to which piece of totally
dynamic code... uhhh..
On second thought, replicating all the series actions is
sounding much more preferable. (Or changing the base all
together and breaking most existing scripts. Weee!)
-jeff