Iterators:
Was working with iterate, and noticed this issue. I did a
quick-n-dirty fix to get rid of it (copy and paste to a new in-ostream
driver). But I thought: Is there actually a good reason to close the
stream at the end of the loop? Or, is there a correct way to make
in-stream not close the stream that I should have been using?
If not, and if there is still development going on for iterate, I can
fix it up more nicely and submit a patch. My thoughts:
- in-stream should, by default, not close the stream. Unlike in-file,
we should expect that the stream was created by some process that will
handle closing the stream at the end, such as with-open-file.
- If the user wants to close the stream at the end, he should do
something like (finally (close stream)). More complicated abstractions
here aren't really helpful.
I had also been thinking that in-stream/in-file could be modified to
make it easier to pass them user-defined reading functions, but that's
another post.
Daniel