if does not evaluate

Jacek Generowicz jacek.generowicz at cern.ch
Thu Jun 17 08:48:08 CEST 2004

[This got lost in a daemon problem at my end ... here it goes again.]

moughanj at tcd.ie (James Moughan) writes:

> > > We have to have a rather arbitrary #' funcall and syntax to stop a
> > > function evaluating long enough to shift it to where it's useful.
> > 
> > What on earth are you talking about ?
> Quoting #' a function.

This is not about delaying evaluation.

#' is a reader macro for FUNCTION:

   #'foo => (function foo)

Common Lisp is what is known as a Lisp-2: this means that it has
separate namespaces for variables and functions (actually, it's more
like a Lisp-7, or a Lisp-at-least-7). #' is used in situations where
you need to specify explicitly that the namespace you are referring to
is the function namespace.

I'm not going to discuss, here, whether a single namespace is better
or worse than a multiple one (the Lisp-1 vs Lisp-2 debate/religious
war/flamefest); Google c.l.lisp or c.l.scheme if you feel like it (I
would advise against posting questions about it to those groups.)

Anyway, the point is that #' has nothing to do with "stop[ping] a
function evaluating"

More information about the Python-list mailing list