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

issue BOGUS-FIXNUMS (initial draft)



The problem I have with being told I should DEFTYPE my own SMALL-INTEGER is the
following:

I believe that one of Lisp's greatest strengths (which is one of the things setting
it apart from Pascal, for example) is not just that it has the potential for
representing and defining things, but that it is gutsy enough to actually predefine
a set of things which people are likely to find useful.

Most languages can, for example, represent their own programs. eg, you could create
a PL/I program which constructed representations of other PL/I programs. The
important thing about Lisp is not that it can represent itself, but that there
is a common agreement about -how- to do such representation, so that non-cooperating
parties can agree.

I think this is at the heart of why jpff and jeff don't want to get rid of fixnum.
I'm happy with that.

It's just a pain for programmers to have to write the DEFTYPE. DEFTYPE is hard to
understand for a naive user. Using it involves at least a strong understanding of
the type system, a thorough enough knowledge of CL to know that DEFTYPE exists at
all, and a knowledge of how to use cons/list/backquote well enough to construct
a new specifier. On the other hand, if some arbitrary type were predefined, then
many people who understood only numerical programming could just go ahead and use
it. It might not serve all their needs, but it would get them started. And it would
get them used to the idea of a restricted range. Once you know the range is
-2â??16 to 2â??16 or whatever, it's easier to know to ask how to declare a different
range than it is to know to ask how to restrict the range if all you know is that
there is an unrestricted range initially.

Further, if we can agree on any range which makes us generally happy for a number
of small programs, then even if it's not -guaranteed- that it will be efficient,
then it will be -likely- that it will be efficient if only because people tend
to optimize things that have names much more than they optimized things you have
to compose, on the assumption that it's easier for users to trip over named things
and so such optmizations will have higher visibility.

So I think that saying that I should define my own type SMALL-INTEGER doesn't
satsify my need and I stand by my suggestions of my previous message.