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

Re: Applying functions to all the symbols in a package...



    For this reason, I am somewhat surprised, that CL has iterative functions for
    fiddling with all they symbols in a package (i.e. DO-SYMBOLS and
    DO-EXTERNAL-SYMBOLS but no equivalent MAP forms (e.g. the zetalisp MAPATOMS
    and MAPATOMS-ALL). This is particularly surprising in light of the fact that
    almost every other MAP function has equivalent iterations forms, and
    vice-versa.

I don't think this is true at all.  The only pair of similar mapping/iteration functions
I can think of are mapc/dolist, and even there the correspondence isn't exact, since
dolist can't iterate over multiple lists in parallel.  There's no mapping equivalent to
dotimes (nor do or do*, 'though I can't really envision such a thing, anyway), and no
iterative equivalent for map, the list mapping functions other than mapc (mapcar, maplist,
mapl, mapcan, and mapcon), nor maphash.

If you feel strongly about such things, and I suspect a lot of people do, perhaps a reasonable
thing to consider is how to automatically generate a mapping equivalent to an iterative function:
a sort of inverse loop macro.  Some LetS constructs seem to have that sort of feel.  Future
discussion of this should probably move to the iteration mailing list.