[iterate-devel] unfixed bugs
Hoehle, Joerg-Cyril
Joerg-Cyril.Hoehle at t-systems.com
Tue May 15 12:08:02 UTC 2007
Hi again,
it occured to me that another implementation approach for Iterate could be based on two passes through the body:
1. code-walker to detect all nested gatherers and other special clauses (like first-time) which introduce variables to be defined in the outer expansion.
2. Knowing these variables and their associated clauses, have Iterate expand into the corresponding outer LET form, and have lots of MACROLET inside that refer to them.
(LET bindings...
init-code...
(macrolet ((collecting ...) (...))
body...
Note that this does not solve the problem with the (IN name ...) clause, or more generally, how to detect that a given COLLECT clause belongs to which Iteration form:
(iter outer (iter inner ... (collect x) or (in outer ... (Collect x))) ...))
This is still hairy at best.
Regards,
Jörg Höhle
More information about the iterate-devel
mailing list