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: [ANN] New library stream.el in ELPA Date: Thu, 15 Oct 2015 12:08:29 +0200 Message-ID: <87a8rkla02.fsf@web.de> References: <87d1whk75h.fsf@petton.fr> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1444903817 14112 80.91.229.3 (15 Oct 2015 10:10:17 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 15 Oct 2015 10:10:17 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Oct 15 12:10:08 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 1ZmfU1-0000y3-Di for ged-emacs-devel@m.gmane.org; Thu, 15 Oct 2015 12:10:01 +0200 Original-Received: from localhost ([::1]:46741 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmfU1-0005IE-0H for ged-emacs-devel@m.gmane.org; Thu, 15 Oct 2015 06:10:01 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:45099) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmfT3-0005Ci-3v for emacs-devel@gnu.org; Thu, 15 Oct 2015 06:09:01 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZmfSx-00023z-Ne for emacs-devel@gnu.org; Thu, 15 Oct 2015 06:09:00 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:41243) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZmfSx-00023n-GW for emacs-devel@gnu.org; Thu, 15 Oct 2015 06:08:55 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1ZmfSo-0008Bz-BG for emacs-devel@gnu.org; Thu, 15 Oct 2015 12:08:46 +0200 Original-Received: from ip-90-186-3-186.web.vodafone.de ([90.186.3.186]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 15 Oct 2015 12:08:46 +0200 Original-Received: from michael_heerdegen by ip-90-186-3-186.web.vodafone.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 15 Oct 2015 12:08:46 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 29 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: ip-90-186-3-186.web.vodafone.de User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) Cancel-Lock: sha1:3PsB1HmU3Y7C9lm/h02CjULCB4Q= 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:191623 Archived-At: "John Wiegley" writes: > What I wonder is, can you generalize this beyond cons cells? I mean, > can we have a general lazy evaluation framework, instead of just lazy > lists? The API I was thinking of was: > > (let ((x (thunk-create FORM))) > (thunk-eval x)) > > The idea being that 'x' is a self-modifying thunk which only evaluates FORM > the first time it is forced, but immediately returns the result value after. Note that there is actually already something like that in Emacs, though it's hard or nearly impossible to find: lisp/url/url-future.el You may want to see the thread "Generators (iterators) for Gnu Emacs" from Dec of last year, where this had been mentioned. Stefan meant he wanted to wait giving it this thing a "future-" prefix until we have understood the consequences of this kind of abstraction. Just want to mention this here, I'm not against writing a new lib. Regards, Michael.