[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
stream-cons
This page is part of the web mail archives of SRFI 41 from before July 7th, 2015. The new archives for SRFI 41 contain all messages, not just those from before July 7th, 2015.
Hi,
stream-car and stream-cdr can be speeded up
by writing stream-cons as follows:
(define-syntax
stream-cons
(syntax-rules
()
((stream-cons obj
strm)
(stream-eager
(make-stream-pare (stream-delay obj) (stream-lazy strm))))))
^^^^^^^^^^^^
Immediate construction of the stream-pare
does not consume more memory than the preparation of a promise, saves two
cycles in procedure stream-force and does not force anything that should not yet
be forced. I checked this with the unit-test. In my own streams-library, the
equivalent of the above stream-cons passes all leak-tests (even the times3 test
in a Scheme implementation (not to be mentioned here) that is rather susceptible
to leaks in procedure stream-force)
Jos Koot
((((lambda(x)((((((x
x)x)x)x)x)x))
(lambda(x)(lambda(y)(x(x y)))))
(lambda(x)(write x)x))
'greeting)