From: Nicolas Petton Date: Fri, 14 Aug 2015 13:58:07 +0000 (+0200) Subject: * lisp/emacs-lisp/stream.el: Define macros early X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=dffce02b589b73fcc7889af6a48ebb7499238083;p=emacs.git * lisp/emacs-lisp/stream.el: Define macros early --- 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)