[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Although I recognize that the reference implementation
needn't be optimized, I couldn't help but make a few
As stream->list is used in many places, it could be
imperative, or at least use built-in R5RS reverse.
Functions that expand their entire argument (e.g.
stream-reverse, stream-scan-right) could probably save
space by using real lists as intermediate data
structures, rather than building nested stream-conses.
They would return their results via list->stream.
The functions vector->stream, stream->vector,
string->stream, and stream->string should not use
lists as intermediate values, because a list may take
up much more memory than its corresponding vector or
string. Converting vectors and strings directly to
streams is trivial, while stream->string and
stream->vector could use a simple buffer/concatenate
strategy with just R5RS primitives.
Do you Yahoo!?
Yahoo! Platinum - Watch CBS' NCAA March Madness, live on your desktop!