Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!zaphod.mps.ohio-state.edu!sdd.hp.com!elroy.jpl.nasa.gov!jato!granite!brian From: brian@granite.jpl.nasa.gov (Brian of ASTD-CP) Newsgroups: comp.lang.lisp Subject: Dumb Common Lisp question Summary: CLtL2: why exists #' ? Message-ID: <4204@jato.Jpl.Nasa.Gov> Date: 28 Jun 90 23:18:12 GMT Sender: news@jato.Jpl.Nasa.Gov Reply-To: brian@granite.Jpl.Nasa.Gov (Brian of ASTD-CP) Distribution: usa Organization: Jet Propulsion Laboratory, Pasadena, CA Lines: 29 I spent last weekend reading Steele's CLtL2 (Common Lisp the Language, second edition). What a tour de force! I think I'll be dizzy for at least another week. I have one pressing question about CL. What is the rationale behind the (function ...) or #' construct? It seems in some places you need to say #'foo, say in an apply, and in other places you just say foo, as in (foo 1 2 3). Thus it seems to be the programmer's job to remember when "the function itself" and "the name of the function" are needed by CL. What I mean is, why is this in the language? The book is very thorough on the _rules_for_using_ #', so I don't need your help with that. I can't find any rationale in the book, though. Does it allow the compiler to improve efficiency? Is it there for historical reasons? What gives? I'm most familiar with Scheme/T, where this kind of thing is not necessary. All symbols are evaluated the same way in application expressions (func arg arg), and the value of func is a function. Treating a function as just another data type like integer or string seems very neat and clean. There must be some reason it's not done this way in CL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Brian Beckman . . . . . . . . . . brian@granite.jpl.nasa.gov. . . . . . meta-disclaimer: every statement in this message is false . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .