RE: compare() and equal()

new topic     » goto parent     » topic index » view thread      » older message » newer message

On 10 Apr 2001, at 4:43, Al Getz wrote:

> 
> 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
> > 
> > 
> 
<snip>

--if equal(left,right)
            if (compare(left,right) = 0) -- 0 = equal !!
		  then result &= sprintf("%s", {right})
		  else result &= sprintf("[%s,%s]", {left,right} )
                end if

that is copy/pasted, which messed up the indents. The top line errors out, 
the bottom line runs fine.

ACK ok, something odd going on... i just commented out the compare() to 
use the equal() and get the ex.err to copy paste here too, and it ran, 
crashing at the else line. But i swear to you, if it had not been crashing, 
reporting the error on the equal() line, i sure wouldn't have re-written it to
use
compare()! Btw, that's code undergoing revisions, not working code in 
anything.
 
> Euphoria's interpreter sometimes doesnt report an error
> untill it can fully resolve a block of code.

erg.

Kat

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu