Tue Apr 5 21:15:28 EDT 2011
"for" functions or "FOR" macros?
The idea is to always use abstract collection traversal interfaces.
There are essentially two forms:
- the STREAM: open, close, next, eof
- the early-abort FOR loop, either as a macro or as a higher order
function (callback + state).
Most people are familiar with the STREAM option, but the FOR function
has some advantages, such as centralizing resource allocation
(open/close are abstract).
In C, a "FOR" macro is more convenient since it can use its
surrounding lexical context without using tricks, but a "for" function
is more powerful though a bit clumsy to use for its need of specific
"context" structures (closures).