> I consider the restriction to be bad design. I would prefer:
>
> If x is an integer, then x{y selects item n|x from y .
So under this definition, is 1{'abc' a or b?
Ken had actually wanted unrestricted indices
(with origin 0), but we convinced him that
it would be a bad idea. If the user executes
2e9{'abc' you are doing him/her a big favor
by signaling an error, rather than have execution
continue with some garbage result which then
blows up many lines later.
----- Original Message -----
From: Bo Jacoby <[email protected]>
Date: Saturday, July 24, 2010 14:07
Subject: Re: [Jprogramming] index origin 0
To: Programming forum <[email protected]>
> When counting to three you say one two three, not zero one two.
>
>
> Cardinal numbers: (0,1,2,...) measure finite sets, and ordinal
> numbers: (first, second, third ...), identify elements in finite
> sets. There is no such thing as zeroth.
>
> The second millenium ended on december 31'th year 2000, not on
> december 31'th 1999. The year numbers are ordinal numbers: One-
> origin indexing.
>
> When a car has run 2000 (kilometers or miles) the odometer
> shifts from 1999 to 2000. The distance is a cardinal number:
> Zero-origin indexing.
>
>
> A zero-origin index should not be understood as an ordinal
> number, but rather as how may elements have passed before we
> reach the element we need.
>
> The J-vocabulary says about { :
>
> If x is an integer in the range from -n=: #y
> to n-1 , then x{y selects item n|x
> from y .
>
> I consider the restriction to be bad design. I would prefer:
>
> If x is an integer, then x{y selects item n|x
> from y .
>
> In that way you do not need to know the index origin. A 10-
> element vector can be indexed either from 0 through 9 or from 1
> through 10, as you prefer. Element no 10 is the same as element
> no 0.
>
> - Bo
>
> --- Den lør 24/7/10 skrev June Kim (김창준) <[email protected]>:
>
> Fra: June Kim (김창준) <[email protected]>
> Emne: Re: [Jprogramming] index origin 0
> Til: "Programming forum" <[email protected]>
> Dato: lørdag 24. juli 2010 19.59
>
> On Sat, Jul 24, 2010 at 10:16 PM, Roger Hui <[email protected]>
> wrote:
> > I have been asked by some APL colleagues about
> > index origin 0 in J. The question is, does the choice
> > of a fixed value of 0 for index origin a hindrance to
> > your work? The question is specifically addressed
> > to "ordinary domain experts", people with no
> > software engineering in their background and are not
> > professional mathematicians.
> >
> > In case you did not know, in APL there is a choice
> > known as the index origin, controlled by the variable
> > quad-io, of counting from 1 instead of from 0, affecting
> > the left argument of { and the result of i. , among other things.
> > I will say no more than this to avoid biasing your answers.
> >
>
> I am okay with index origin 0. I see the reasons, like Dijkstra
> did[0], but
> some of my friends, whom I would call ordinary domain experts
> without much
> experience in programming, felt uncomfortable about it, at least
> in the
> beginning. However, when I tell them the index means "interval
> points"(likea cursor), they made less mistakes.
>
> You may see some debates on this[1].
>
> [0] E.W. Dijkstra Archive: Why numbering should start at zero
> (EWD 831)
> http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html
>
> [1] Why numbering should start at 0 | Lambda the Ultimate
> http://lambda-the-ultimate.org/node/1950
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm