RE: compare() and equal()
- Posted by Al Getz <Xaxo at aol.com> Apr 09, 2001
- 532 views
Hello again, Kat wrote: > On 8 Apr 2001, at 23:56, Derek Parnell wrote: > > > > > > Hi Kat, > > I just did this ... > > > > ? compare({1,2,{3,{4}},5}, {2-1,1+1,{3,{4}},6-1}) > > ? equal({1,2,{3,{4}},5}, {2-1,1+1,{3,{4}},6-1}) > > > > ... > > and I got displayed ... > > > > 0 > > 1 > > > > which is exactly what I'd expect. There was no error message or the > > like. > > Well, i just changed a bunch of these: > if equal(a,b) then > > to: > if (compare(a,b) = 0) then > > because the nested sequences in the equal() line were crashing the > program! > The compare() line runs fine now. > > > > Also, if equal() is true, it returns boolean true, but if > > > compare() is true, it returns > > > boolean false. > > > > > > > But compare() can *never* be true as it does not return a true/false > > indicator. It isn't meant to. It just tells if parameter#1 is less than, > > equal to, or greater than parameter#2. And this is not a boolean thing. > > It returns zero or non-zero, and zero equates to false in a boolean > compare. > Equal() returns 1 (true) or 0 (false) the same way, but the true-1 in > equal() > and the true-0 in compare() feels too odd. > > Kat > > I have to agree with Kat that sometimes -1 and 1 are lumped together as 'true' while 0 is still taken to be 'false, making the logistics look 'boolean', even though the function doesnt return a true boolean. I have to agree with Derek though, in that the two lines of code both function properly, so i would think Kat is typing something incorrectly. Kat, would you like to cut and paste your exact code here, instead of typing it out manually? Perhaps the error will show up. You can also try swapping the two lines of code and see if that shifts the error to the 'compare' line. Euphoria's interpreter sometimes doesnt report an error untill it can fully resolve a block of code. Good luck with it. --Al