[r6rs-discuss] Comparison procedures' number of arguments
Ken Dickey
Ken.Dickey at whidbey.com
Mon Oct 20 01:57:22 EDT 2008
On Sunday 19 October 2008 18:08:19 Thomas Lord wrote:
> On the one hand, you don't want to allow 0 or 1 argument because
> you see < as a binary relation and those cases don't make sense
> unless we're treating < as sequence predicate. You want the error
> checking to rule out 0 or 1 arguments to avoid "surprise" to
> someone who sees a binary operator there.
>
> On the other hand, you'll allow 3 arguments because it is
> convenient and in spite of the fact that it rules out error checking
> for someone who sees a binary operator there.
For me, < is a test for a _relationship between numbers_ (which can be
extended transitively).
The word "between" implies more than one.
I do not see a "natural" numeric relationship between non-numbers or between a
number and a non-number. I don't know what this would model [in Scheme]. I
can see building a symbolic math library where extensions might make sense in
varying contexts, but not in basic arithmetic.
> > I don't consider (low-bound x high-bound) to be a sequence
>
> Parameter lists satisfy any reasonable axiom system for finite
> sequences so they are such regardless of whether or not you give
> the matter your consideration.
>
> But, now you have a "consideration deficit".
This is correct.
I also do not consider +nan.0, +inf.0, and -inf.0 as numbers. I consider
them "off-scale" markers. I think that testing for (= +nan.0 +nan.0) is
silly and should raise an exception. [(eq? +nan.0 +nan.0) is sensible].
I realize this is not a global viewpoint.
> Your selection of what to call an error seems to me on a shaky
> ground of trying to predict "common cases" rather than asking
> how to make clean models.
Being is being related. Numeric "relations" to "non-being" don't make sense
to me. That a numeric predicate applied "out of context" e.g. (< 'a "foo")
or (< 2) or (=) should raise an exception seems natural to me.
I am expressing my opinion.
$0.02
-KenD
More information about the r6rs-discuss
mailing list