Thanks, Larry! I appreciate the alert.
[EMAIL PROTECTED] wrote:
>
> ... The problems are due to a flaw in the mathematical comparison
> functions (< > <> = <= >=) in REBOL when they are applied to the
> decimal! type...
>
So, to avoid stepping on this land-mine, I should either define the
"safe" comparisons per your note or rewrite
> >
> > signum: func [n [number!]] [
> > ewd/if [
> > n < 0 [-1]
> > n = 0 [ 0]
> > n > 0 [ 1]
> > ]
> > ]
signum: func [n [number!]] [
ewd/if [
negative? n [-1]
zero? n [ 0]
positive? n [ 1]
]
]
and
> >
> > medianof3: func [a b c] [
> > ewd/do [
> > a > b [set [a b] reduce [b a]]
> > b > c [set [b c] reduce [c b]]
> > ]
> > b
> > ]
> >
medianof3: func [a b c] [
ewd/do [
positive? a - b [set [a b] reduce [b a]]
positive? b - c [set [b c] reduce [c b]]
]
b
]
and so on for the other examples... right?
Hmmm... Those definitions for 'gt? 'eq? 'lt? (etc.) are looking
better all the time!
-jn-