1. compare , zero indexing (Re: mainly syntax)
- Posted by Jacques Guy <j.guy at TRL.TELSTRA.COM.AU> Feb 18, 1998
- 676 views
David Cuny wrote: > compare() vs. "=" is just trouble waiting to happen. I assume that the > reason that Euphoria uses compare is so that the "=" operator can be > optimized to handle numeric values. No, I don't think so. Compare() returns three values: less than, equal, greater than. = only two: equal, unequal. What threw me off is that "if x=y" reports an error when x and y are strings, and that compare() returns -1, 0, or 1. Me, simple-minded linguist that I am, I have written myself compare functions in Pascal before, but I had them return '<', '=', and '>'! > [Zero Indexing] > The rest of the programming world starts counting with zero Except Pascal, ALGOL, Simula, Ada, Modula, and, I imagine, others I do not know about, which start counting from whatever you tell them. I am quite happy with counting from 1 in Euphoria, I am not a Mayan, you know (they counted the days of the month from zero). > At a minimum, we need a mechanism that can be called to save the user's > precious data before the program shuts down. Preferably, I should be able > to place a routine id in a variable: > onError = routine_id( "save_user_data" ) I agree there. I had been looking for something like that in the reference library and the manual, and was surprised not to find anything. I thought it was myopic me.
2. Re: compare , zero indexing (Re: mainly syntax)
- Posted by Cameron Kaiser <spectre at WWW2.BUOY.COM> Feb 18, 1998
- 687 views
> No, I don't think so. Compare() returns three values: less than, > equal, greater than. = only two: equal, unequal. > > What threw me off is that "if x=y" reports an error > when x and y are strings, and that compare() returns > -1, 0, or 1. Me, simple-minded linguist that I am, > I have written myself compare functions in Pascal before, > but I had them return '<', '=', and '>'! Yay, another linguist (syntactician, actually ! Anyway, compare() or the equivalent in a lot of languages also returns -1, 0 and 1. Perl uses the 'cmp' or '<=>' operators; and most languages, when they ask for a sort function to sort an array through, expect it to return -1, 0 or 1 (Perl, uLPC/Pike, LPC do this, probably others). > Except Pascal, ALGOL, Simula, Ada, Modula, and, I imagine, others > I do not know about, which start counting from whatever you tell > them. I am quite happy with counting from 1 in Euphoria, I am > not a Mayan, you know (they counted the days of the month > from zero). Actually, BASIC doesn't have to, surprisingly. At least on C64s, you can start assigning to arrays at element 0, although it's uncommon. I would expect most Microsoft 8-bit BASICs, like Applesoft and Atari Microsoft BASIC, did the same. > I agree there. I had been looking for something like that in the > reference library and the manual, and was surprised not to find > anything. I thought it was myopic me. Perl has a whole raft of signal handling features. You can have a __DIE__ trap to hook fatal errors -- even compile-time ones (!), and while DOS Euphoria doesn't have much call for trapping SIGALRM, it might in a Unix version )))). -- Cameron Kaiser * spectre at sserv.com * http://www.sserv.com/ -- Visit the leading Internet starting point today! http://www.sserv.com/ --