Re: PAIP: case studies in learning Common Lisp

From: Kalle Olavi Niemitalo (kon_at_iki.fi)
Date: 12/29/04


Date: Wed, 29 Dec 2004 10:09:27 +0200

Damien Kick <dkick1@email.mot.com> writes:

> I'm surprised that the macroexpansion seems to be immune to the
> package, turning PAIP::SYMBOL into SYMBOL.

Because you evaluated (cl:in-package #:paip), the current package
is PAIP, and PPRINT displays PAIP::SYMBOL as SYMBOL.

If you had loaded auxfns.lisp with LOAD instead of evaluating the
forms directly, then LOAD would have restored the current package
afterwards, presumably leaving you at CL-USER.

> Doh! A second look at DEFTYPE <> tells me that the symbol is being
> used as a name, not a symbol.

That is not right. DEFTYPE defines a type specifier whose name
is the symbol. The symbol in turn has a string as its name, but
DEFTYPE does not care of that.

I think most of the operators that use names of symbols are
specified to treat them as string designators. And then there is
LOOP.



Relevant Pages