[net.micro.amiga] Cambridge LISP: what is it?

michaelm@bcsaic.UUCP (michael b maxwell) (10/25/85)

Some time ago, Daniel.Zigmond@SPICE.CS.CMU.EDU posted a message that
Cambridge LISP had (according to someone from Metacompco) a Frantz front
end.  Now we see messages about it having a "de" function instead of
"defun" (and presumably no "defmacro" etc.).  One would assume that the
Frantz front end was some sort of a macro pre-processor (in a library?) that
changes the defun's into "de something-or-other".  Does anyone know
anything definitive about this?  Are you listening, Dan?
-- 
Mike Maxwell
Boeing Artificial Intelligence Center
	...uw-beaver!uw-june!bcsaic!michaelm

djz@spice.cs.cmu.edu (10/27/85)

From: Daniel.Zigmond@SPICE.CS.CMU.EDU



Yes, I am listening.

An overload of work has kept me from actively contributing to this
group yet so I have not been able to post any sort of full Cambridge
Lisp review.  I will try to answer some basic questions.

Cambridge Lisp is based on Standard Lisp.  It is not compatible with
Franz Lisp or Common Lisp.  I see this as a serious flaw.  I called
Metacompco to find out whether they ever planned to release a Common
Lisp compatible implementation and was told that they did.  I spoke
with a Mr. Hamilton who seemed quite knowledgeable about both Cambridge
Lisp and MCC Pascal.  He told me that a Franz Lisp front end existed
and that a Common Lisp one would be "available" soon.  I put available
in quotes because he was unable to tell me how I could get either the
existing front end or the future one.  He also provided no details on
exactly what he meant by either "front end" or "compatible" so I really
know very little about it.

Translating code from other Lisps to Cambridge Lisp is not trivial.  I
work mainly with Common Lisp and the lack of DO, LET, &optional, &rest
(and other &xxx symbols), CASE, strutures, packages, TYPE-OF, and many
other useful features makes translation very difficult, if not nearly
impossible.  Without having used Franz Lisp very much, I would guess
that many of these problems apply to it as well.

However, Cambridge Lisp is a powerful product.  It provides a very rich
set of primitives and allows for a great degree of customization.  I
think that if I spent the time to learn all of its quirks, I could do a
lot with it.  It has some features that are rare among personal
computer Lisps like rational numbers, infinite-precision integers, a
compiler, strings, vectors, character functions, stream- and
buffer-based I/O, non-local exits, macros, error trapping, and more.
It can deal with lists as normal lists, sets, association lists, dotted
pairs, property lists, and circular structures.  The math functions are
diverse and include arithmetic functions (integer and real),
trigonometric functions, binary shifts, logical operators, and various
predicates.  In short, Cambridge Lisp is a useful language and the
issue of compatibility is only crucial to people who already have Lisp
code or plan to port whatever they write on the Amiga to something else.

I would really like to know what sort of support Metacompco is going to
provide for Cambridge Lisp.  Are they going to release useful libraries
of functions like the Franz Lisp front end?  Will they rewrite the
documentation?  Will they provide upgrades when new products like the
Common Lisp-compatible Cambridge Lisp are completed?  When will they
add graphics and sound functions?  Will they ever bother to explain the
very complicated process through which graphics and sound can be used
in the current version?

I don't know the answer to any of these questions and have not yet had
time to ask Metacompco about them.  If anybody gets real answers,
PLEASE post them.  I know this description is incomplete but, again, I
am pressed for time right now.  If anyone has any specific questions
(like what exactly is the difference between de and defun) I will do my
best to answer them.

	Dan