GNU ELPA - stream

stream

Description
Implementation of streams
Latest
stream-2.2.3.el, 2016-Sep-24, 19.4kB
Maintainer
nicolas@petton.fr
Home page
http://elpa.gnu.org/packages/stream.html
Browse repository
CGit or Gitweb

To install this package, run in Emacs:

M-x package-install RET stream RET

Full description

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 test/automated/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.

Old versions

stream-2.2.2.el2016-Sep-1719.4kB
stream-2.2.1.el2016-Aug-0217.6kB
stream-2.2.0.el2016-Mar-0415.2kB
stream-2.1.0.el2015-Nov-1210.5kB
stream-2.0.5.el2015-Nov-0510.2kB
stream-2.0.2.el2015-Oct-319.53kB
stream-2.0.1.el2015-Oct-279.43kB
stream-1.0.el2015-Oct-159.02kB
stream-1.0.1.el2015-Oct-269.23kB