> > (eval `(lambda () (funcall ,(lambda () nil))))
> This does look like a real bug. Using a function this way seems like
> a fairly weird thing to do [...]
I found this by screwing up, as usual. I was returning lambda forms
from my regexp compiler, and some of 'em were getting compiled in the
wrong place... Confusion resulted, hiding a bug in the regexp
compiler. But it takes more than a juicy steak to throw my
bug-tracking hounds off the trail!
> [...], and I'm not surprised that it stresses the compiler a bit,
> but as long as functions are first class values and we have the
> compiler available at runtime, it seems as though the right thing is
> to support this instead of dying.
D'accord. Other alternatives you may prefer are either an error or
perhaps a style warning, pointing out that function 'forms' aren't
portable. I recall KMP saying on cll that macros etc. should evaluate
to forms, and I think some other Lisps (if Schemes /do/ turn out to be
Lisps, after all) are stricter in this respect, but if no one else has
strong feelings, then I think the patch I sent in may be the minimum
energy path. Just let me know if you'd like either of these
alternatives explored and I'll give it a shot.
Thanks for replying,