Pascal Bourguignon <firstname.lastname@example.org> wrote:
| In any case, my point is that the standard is under specifying
| and muddy, and I'd try to avoid the muddiest parts.
I don't think we disagree all that much here.
| After been bitten by the extended LOOP mud monster, I consider it
| to be muddy enough to be avoided. The semantics of DO and DO* is
| completely clear in comparison.
On this point we should probably agree to disagree. Personally, while I
initially did find LOOP to be large, complex, & confusing, I now find a
fairly large subset of LOOP to be perspicuous enough, and for a number
of common tasks to be considerably more convenient that DO/DO*, particularly
given features like iteration variable destructuring and COLLECT/COUNT/SUM/&c.
And while I certainly still use DOTIMES, DOLIST, and DOHASH where they
fit the task, I seldom find myself using DO/DO* any more. FWIW.
 In CLISP, that is. In CMUCL, it's called DO-HASH (with the same args),
but a trivial renaming macro fixes that. (And besides, it's easy enough
to define from scratch.)
Rob Warnock <email@example.com>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607