[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

special forms

Well, the implementation note on 58 implies that standard macros are
allowed to expand into implementation-dependent special forms.  In
combination with the premission on 57 to implement special forms as
macros, this suggests that it is legal for special forms to be
implemented as macros that expand into implementation-dependent
special forms.

I am pretty certain that special forms, both standard and
implementation dependent, should be special-form-p.  It is true that
it doesn't help a code walker much to know it has tripped over a
special form it doesn't know about, but at least it can fail
gracefully instead of treating random syntax as being evaluated forms.

Having said this, I encourage you to avoid using implementation
dependent special forms.  In all the cases I have come across,
expanding into a function call works just as well.  You just stick in
"'" and "#'" as necessary to prevent stuff from being evaluated.  The
compiler can still special-case these "funny functions" in arbitrary
ways, but they obey function syntax, and thus make life easy for
people who don't care.