To install this package, run in Emacs:
M-x package-install RET stream RET
This library provides an implementation of streams. Streams are implemented as delayed evaluation of cons cells. Functions defined in `seq.el' can also take a stream as input. streams could be created from any sequential input data: - sequences, making operation on them lazy - a set of 2 forms (first and rest), making it easy to represent infinite sequences - buffers (by character) - buffers (by line) - buffers (by page) - IO streams - orgmode table cells - ... All functions are prefixed with "stream-". All functions are tested in tests/stream-tests.el Here is an example implementation of the Fibonacci numbers implemented as in infinite stream: (defun fib (a b) (stream-cons a (fib b (+ a b)))) (fib 0 1) A note for developers: Please make sure to implement functions that process streams (build new streams out of given streams) in a way that no new elements in any argument stream are generated. This is most likely an error since it changes the argument stream. For example, a common error is to call `stream-empty-p' on an input stream and build the stream to return depending on the result. Instead, delay such tests until elements are requested from the resulting stream. A way to achieve this is to wrap such tests into `stream-make' or `stream-delay'. See the implementations of `stream-append' or `seq-drop-while' for example.
stream-2.2.4.tar | 2017-Apr-23 | 50.0 KiB |
stream-2.2.3.el | 2016-Sep-24 | 19.4 KiB |
stream-2.2.2.el | 2016-Sep-17 | 19.4 KiB |
stream-2.2.1.el | 2016-Aug-02 | 17.6 KiB |
stream-2.2.0.el | 2016-Mar-04 | 15.2 KiB |
stream-2.1.0.el | 2015-Nov-12 | 10.5 KiB |
stream-2.0.5.el | 2015-Nov-05 | 10.2 KiB |
stream-2.0.2.el | 2015-Oct-31 | 9.53 KiB |
stream-2.0.1.el | 2015-Oct-27 | 9.43 KiB |
stream-1.0.1.el | 2015-Oct-26 | 9.23 KiB |
stream-1.0.el | 2015-Oct-15 | 9.02 KiB |