[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wired numeric predicates?

I tried replying directly to Will Clinger but I cannot seem to successfully
route replies to him, so I forwarded this to the list. Perhaps it is of
general interest anyway. Thanks for your reply, Will.


Yes.  I know the R^3 Manual is not ambiguous on the point that < et al.  are
procedures and not special forms.  I'm sorry if I sounded alarmist about this.
I just wondered if the non-ambiguity was intentional or desireable.

I understand your rationale for not wanting numeric predicates to be special
forms.  The reason I brought it up was that I am a Teaching Assistant in an
undergrad course this term that uses Scheme.  A student raised the issue since
it seems natural to think of (< x1 x2 x3...) as being the AND of each of the
individual two-step comparisons.  The resemblence between this and the AND
form were sufficiently strong that the student conveniently ignored the fact
that we explicitly describe < as being a *procedure* and not as a *special
form*...  I guess people naturally don't look carefully at things that they
consider ``intuitively obvious''. (Actually, MIT Scheme also defines AND to be
a procedure, but we had blown this at the time... the student wanted to know
about MACScheme).

I suspect this is a very common misconception among naive users, which
suggests to me that the language would have a more uniform interface to
the user if the numeric predicates were in fact special forms.

Again, I see the language designers view that we want as little special
syntax as necessary to reinforce that we use it only where it is REALLY
needed. However, this viewing angle produces a uniformity in the language
_design_ which does not result in as uniform a _language interface_.

I guess this is just a matter of emphasis/taste. I really have not strong
opinions on this... was just curious.