From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.devel Subject: Re: streams are cool, you could stream virtually anything! Date: Wed, 04 Nov 2015 19:06:44 +0100 Message-ID: <87fv0labbf.fsf@web.de> References: <87ziyuaqhl.fsf@petton.fr> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1446660445 27852 80.91.229.3 (4 Nov 2015 18:07:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 4 Nov 2015 18:07:25 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Nov 04 19:07:17 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Zu2So-0005Lz-1U for ged-emacs-devel@m.gmane.org; Wed, 04 Nov 2015 19:07:14 +0100 Original-Received: from localhost ([::1]:56413 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zu2Sn-0000YU-MC for ged-emacs-devel@m.gmane.org; Wed, 04 Nov 2015 13:07:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:50122) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zu2SW-0000Xy-Tc for emacs-devel@gnu.org; Wed, 04 Nov 2015 13:07:00 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zu2ST-0001WS-Hm for emacs-devel@gnu.org; Wed, 04 Nov 2015 13:06:56 -0500 Original-Received: from plane.gmane.org ([80.91.229.3]:33885) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zu2ST-0001WO-BA for emacs-devel@gnu.org; Wed, 04 Nov 2015 13:06:53 -0500 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1Zu2SR-00052p-5b for emacs-devel@gnu.org; Wed, 04 Nov 2015 19:06:51 +0100 Original-Received: from ip-90-186-2-4.web.vodafone.de ([90.186.2.4]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 04 Nov 2015 19:06:51 +0100 Original-Received: from michael_heerdegen by ip-90-186-2-4.web.vodafone.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 04 Nov 2015 19:06:51 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 25 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: ip-90-186-2-4.web.vodafone.de User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) Cancel-Lock: sha1:0O91UVj7K1N4O4PI7qwzexDAMKw= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:193221 Archived-At: John Wiegley writes: > Do you know the memory behavior of doing it this way? That is, for > 1000 hits, how does the number of cons's allocated compare to the > iterative approach? That depends on whether you want/need to keep the matches so far. If you don't need to save prior matches, you can just (setq stream (stream-cdr stream)) after generating an element, and memory usage will be O(1). (Note to Nicolas: a `stream-pop' function would be nice in this context). In that case, you can alternatively use generators (generator.el) or the derived iterators.el. If you keep the complete stream in memory, you get O(nbr-matches) conses (of course). Not much a problem IME, if you keep an eye on what you want to keep and what you can throw away when using streams. Regards, Michael.