[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations
From: |
Michael Heerdegen |
Subject: |
Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations |
Date: |
Sat, 11 Jun 2016 03:34:58 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.94 (gnu/linux) |
Nicolas Petton <address@hidden> writes:
> > I updated the patch.
Hmm, seems my implementation of `stream-concatenate' is too recursive
"when executed":
#+begin_src emacs-lisp
(seq-into-sequence
(stream-concatenate
(seq-map
(lambda (n) (stream (list n)))
(stream (number-sequence 1 500)))))
stream-empty-p: Lisp nesting exceeds `max-lisp-eval-depth'
#+end_src
The standard approach seems to work in this case OTOH, e.g. with (don't
forget to eval the example with lexical-binding turned on!):
#+begin_src emacs-lisp
(defun stream-concatenate (stream-of-streams)
(while (and (not (stream-empty-p stream-of-streams))
(stream-empty-p (stream-first stream-of-streams)))
(cl-callf stream-rest stream-of-streams))
(if (stream-empty-p stream-of-streams)
(stream-empty)
(stream-cons
(stream-first (stream-first stream-of-streams))
(stream-concatenate
(stream-cons (stream-rest (stream-first stream-of-streams))
(stream-rest stream-of-streams))))))
(progn
(seq-into-sequence
(stream-concatenate
(seq-map
(lambda (n) (stream (list n)))
(stream (number-sequence 1 50000)))))
nil ;Don't display the result, please
)
==> nil
#+end_src
So I guess we should replace the current implementation.
Michael.
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, (continued)
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Yuri Khan, 2016/06/09
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Michael Heerdegen, 2016/06/09
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Yuri Khan, 2016/06/09
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Michael Heerdegen, 2016/06/10
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Yuri Khan, 2016/06/10
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Michael Heerdegen, 2016/06/10
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Markus Triska, 2016/06/12
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Michael Heerdegen, 2016/06/12
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Nicolas Petton, 2016/06/12
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Markus Triska, 2016/06/12
- Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations,
Michael Heerdegen <=
Re: [PATCH] Gnu Elpa: stream.el: Add some more basic stream operations, Nicolas Petton, 2016/06/09