> As to NAMED-LET, I came to Common Lisp from Scheme, so to me named LET
> doesn't seem particularly strange. While TAGBODY is more standard
> Common Lisp, I'm not convinced it's clearer. When I see a long TAGBODY
> I start to wonder how many tags might be scattered around in it, and
> whether there might be GOs forward as well as back. A named LET only
> has one tag, and it always branches backwards. [...]
> (I wouldn't recommend named LET in most Common Lisp application code,
> since you can't in general rely on a Common Lisp compiler optimizing
> away tail recursion. But for use inside SBCL itself, where there's no
> need for portability so we can safely rely on understanding tail
> recursion issues, it seems OK.)
> I might leave the NAMED-LETs alone.
TAGBODY is less than ideal, true. If you prefer, I can send
a LOOP + BLOCK variant, or LABELS, although I'm a bit queasy
on interaction loops relying on tail call removal. I like these
alternatives because they're standard and equally expressive,
but if you're happy with NAMED-LET then that's fair enough: I
came from Scheme, too.
> (sorry I always end up arguing about aesthetics on your patches...)
They're so minuscule (minusclue?) there's not much
else to argue about!
One day I'll submit such an SBCL functionality-enhancing patch that
you'll just /have/ to succumb, aweful style and all! :)