Subject: Re: The LOOP macro (was Re: Be afraid of XML)
From: rpw3@rpw3.org (Rob Warnock)
Date: Mon, 15 Mar 2004 06:41:41 -0600
Newsgroups: comp.lang.lisp
Message-ID: <PXqdnXLEhNkYOcjd3czS-w@speakeasy.net>
Pascal Bourguignon <spam@thalassa.informatimago.com> 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[1] where they
fit the task, I seldom find myself using DO/DO* any more. FWIW.


-Rob

[1] 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			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607