Path: utzoo!attcan!uunet!crdgw1!uakari.primate.wisc.edu!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!caen!hellgate.utah.edu!cdr.utah.edu!moore From: moore%cdr.utah.edu@cs.utah.edu (Tim Moore) Newsgroups: comp.lang.lisp Subject: Re: STRUCTUREP Message-ID: <1990Oct10.130925.18317@hellgate.utah.edu> Date: 10 Oct 90 19:09:24 GMT References: <753@forsight.Jpl.Nasa.Gov> <1990Oct10.091722.4495@hellgate.utah.edu> <754@forsight.Jpl.Nasa.Gov> Organization: University of Utah CS Dept Lines: 47 In article <754@forsight.Jpl.Nasa.Gov> gat@robotics.Jpl.Nasa.Gov (Erann Gat) writes: >You are right, of course. However, there are a number of things that you >can do in T which you can't do in Common Lisp. Among these are: > >1. Create callable objects (which allow you to do things like SETF a locative >passed to a function as an argument) I'm not sure what you mean by this. If you mean that T has locatives, it's not hard to simulate locatives in Common Lisp (see Lisp Pointers, vol. 2 no. 2); they're just closures that encapsulate the information needed to store into the general variable (I think that's essentially what they are in T; feel free to correct me). I think that locatives a la Lisp Machine Lisp (essentially pointers) are impractical without massive gc complexity or microcode support. >2. Tell if an object is a structure :-) It's unclear why you want to do this. Only system code should really need a structurep. >Personally, I think that it's the "and much more" part that is Common >Lisp's biggest problem. It's getting to the point where it is very difficult >to get a grip on the entire language. Not only does this make CL hard to >write, it encourages writing code that is nearly impossible to read without >a copy of CLTL in hand (and sometimes even then). (It also makes it harder >to tell when some crtitical feature has been omitted from the language :->) The "hard-to-write" argument is the one I hear most frequently, especially around here (where we are close to finishing a CL implementation). I think only a handful of people (Lisp implementors) really care about this. I don't think Common Lisp function names are cryptic. There are a few macros whose syntax is unfortunate, mostly for hysterical raisons. I keep a copy of CLTL around when I write code, mostly to check that what I'm about to write isn't already part of the language. It's easy to write obscure code in any Lisp. > >Just my opinion. >E. That's what the net is for! Tim Moore moore@cs.utah.edu {bellcore,hplabs}!utah-cs!moore "Ah, youth. Ah, statute of limitations." -John Waters