Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: Correct Behaviour? Was False = 2 ????

From: joel:neely:fedex at: 4-Jul-2001 22:19

Hi, Jeff, The dried frog pills are in the way via FedEx... ;-) Jeff Kreis wrote:
> Howdy, Joel: > > > "First" refers to the item in an ordered collection > > which precedes all others. > > Well, if you wish to define "first" that way, then what > is the word 'Zeroth' found in the dictionary for? >
Because dictionaries simply document all of the things people say, without any obligation to make a simple, consistent system out of them, of course. I can also supply you a list of arbitrarily weird and contradictory quotations from the evening news, especially during election years! ;) I trust we haven't stooped to using an English dictionary as the basis for defining a programming language! Notice that English dictionaries have cleave, v.t.: to divide, pierce, sever, disunite cleave, v.i.: to split, separate, fall apart immediately followed (at least in mine, yours may use a different ordering -- no matter) by cleave, v.i.: to adhere, cling, be faithful (to) As both my Mathematics and Philosophy professors taught me, when I was a wee lad, A system which asserts the contradictory propositions P and NOT P can be used to prove anything, and therefore proves nothing. But the simplest test of usability is to show anyone (with no prejudicial prompting, of course) an ordered collection of items and simply ask, "Which is the first?" They will likely not find that a challenging question...
> If you can squarely locate the zeroth place I will > understand much better your more consistent system of > the free mind. >
I'm simply not interested in defining that term at all. Nor do I care to add PENULTIMATE to the REBOL lexicon, even though I can find *that* term in some dictionaries.
> ... the relative late "discovery" of zero is suggestive of > the fact that humans weren't initially inclined to include > zero in their numbering systems ... >
We've already covered this. The ancient greeks also didn't consider "one" a true number. Most people of the middle ages still believed that the sun revolved around the earth. The common man in the 1800's had never heard of a computer. In 2001, John Q. Public probably *still* uses neither "parse" nor "data type" in everyday conversation. And I'll be quite surprised if you claim to balance your checkbook using Roman numerals.
> ... and it seems you're may be eager to dispose of our > friend "zeroth" for the convenience of FIRST's definition. > But perhaps I'm missing something... >
Perhaps all of my examples have made my point too easy to miss... Natural language is fuzzy, messy, ambiguous, obscure, and nearly infinitely flexible. That makes it wonderful for conversation, jokes, wordplay, romance, and puns, but terrible for precision (as in treaties, contracts, or program specifications). Computer programming requires precision. Programming languages (along with most other things!) are more easily learned and used if their designs are carefully guided by the values of simplicity and consistency. To lull the newcomer into a false sense of security by offering familiar-looking terminology which is actually used inconsistent and highly subtle/complex ways, is to be penny-wise and pound-foolish IMHO. Neither "zeroth" nor "first" are friends of mine, especially if "first" is overloaded with meanings that have nothing to do with any logically inherent order (as with functions or objects). However, as a way of referring to the elements of an ordered collection, I submit that understanding "first" as meaning preceding all others is sufficiently intuitive as to need little explanation. (Regardless of addressing scheme.) Other languages have used other solutions, such as "head" to refer to the leading element in an ordered collection. If we are going to try to use common, everyday terms in our programming languages, I suggest that we should: 1) give preference to the most common ones (e.g. "first" being much more common than either "penultimate" or "zeroth", 2) scrupulously use those terms as precisely and consistently as possible, following the principle of least surprise, and 3) exercise severe self-control (I assume we won't be seeing definitions for "seventeenth" and "twentythird" in REBOL/View 1.3 ;-) Finally, I should thank you for putting to rest one other issue that has been troubling the list for some time... Based on your absolute insistence that "first" means 1, second means 2, etc., and the fact that
>> sort reduce [true false none]
== [none false true] we are now able to conclude confidently that none = 1 false = 2 true = 3 I'm greatly relieved to have this settled! ;-) -jn- ------------------------------------------------------------ Programming languages: compact, powerful, simple ... Pick any two! joel'dot'neely'at'fedex'dot'com