diff options
author | Nicolas Petton <nicolas@petton.fr> | 2015-08-14 15:58:07 +0200 |
---|---|---|
committer | Nicolas Petton <nicolas@petton.fr> | 2015-08-14 15:58:07 +0200 |
commit | dffce02b589b73fcc7889af6a48ebb7499238083 (patch) | |
tree | 2bed7aad66a8c265b863d0a85a6e7a143c854d66 /lisp/emacs-lisp | |
parent | 25f2c063b97f24dcefb5cf1d910fb8210650f252 (diff) | |
download | emacs-dffce02b589b73fcc7889af6a48ebb7499238083.tar.gz |
* lisp/emacs-lisp/stream.el: Define macros early
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/stream.el | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/lisp/emacs-lisp/stream.el b/lisp/emacs-lisp/stream.el index 012957200b6..f1d2631eaee 100644 --- a/lisp/emacs-lisp/stream.el +++ b/lisp/emacs-lisp/stream.el @@ -74,6 +74,19 @@ (defun stream--force (delayed) "Force the evaluation of DELAYED." (funcall delayed)) + +(defmacro stream-make (&rest body) + "Return a stream built from BODY. +BODY must return nil or a cons cell, which cdr is itself a +stream." + (declare (debug t)) + `(list ',stream--identifier (stream--delay ,@body))) + +(defmacro stream-cons (first rest) + "Return a stream built from the cons of FIRST and REST. +FIRST and REST are forms and REST must return a stream." + (declare (debug t)) + `(stream-make (cons ,first ,rest))) ;;; Convenient functions for creating streams @@ -129,19 +142,6 @@ range is infinite." (stream-range (+ start step) end step)))) -(defmacro stream-make (&rest body) - "Return a stream built from BODY. -BODY must return nil or a cons cell, which cdr is itself a -stream." - (declare (debug t)) - `(list ',stream--identifier (stream--delay ,@body))) - -(defmacro stream-cons (first rest) - "Return a stream built from the cons of FIRST and REST. -FIRST and REST are forms and REST must return a stream." - (declare (debug t)) - `(stream-make (cons ,first ,rest))) - (defun stream-p (stream) "Return non-nil if STREAM is a stream, nil otherwise." (and (consp stream) |