From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Eric Schulte" Newsgroups: gmane.emacs.devel Subject: Re: general lazy list facility for Emacs Lisp? Date: Fri, 25 Mar 2011 06:30:26 -0600 Message-ID: <87d3lfgz6l.fsf@gmail.com> References: <87pqphswn3.fsf@lifelogs.com> <877hbpzsy8.fsf@member.fsf.org> <87oc51rcal.fsf@lifelogs.com> <87tyetfymt.fsf@member.fsf.org> <87pqphfyak.fsf@member.fsf.org> <87oc51ipy5.fsf@lifelogs.com> <87hbathyuj.fsf@gmail.com> <87ei5w7cci.fsf@lifelogs.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1301056254 31245 80.91.229.12 (25 Mar 2011 12:30:54 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 25 Mar 2011 12:30:54 +0000 (UTC) Cc: emacs-devel@gnu.org To: Ted Zlatanov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Mar 25 13:30:47 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Q36A9-00079o-Kt for ged-emacs-devel@m.gmane.org; Fri, 25 Mar 2011 13:30:46 +0100 Original-Received: from localhost ([127.0.0.1]:55179 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q36A6-0008G1-Ht for ged-emacs-devel@m.gmane.org; Fri, 25 Mar 2011 08:30:42 -0400 Original-Received: from [140.186.70.92] (port=45588 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q36A1-0008Dy-FQ for emacs-devel@gnu.org; Fri, 25 Mar 2011 08:30:38 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q369z-0004TK-K5 for emacs-devel@gnu.org; Fri, 25 Mar 2011 08:30:37 -0400 Original-Received: from mail-pw0-f41.google.com ([209.85.160.41]:60203) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q369z-0004Sw-FA for emacs-devel@gnu.org; Fri, 25 Mar 2011 08:30:35 -0400 Original-Received: by pwi10 with SMTP id 10so219563pwi.0 for ; Fri, 25 Mar 2011 05:30:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-type; bh=3hjOekhRg746CGNCzPNrMVLtw7lDFFIJcoLM26EweX8=; b=l3FEa1A21xCgvtdRXFKrPtXQzRpmzfSQ9iv16vdvoicKL+7aFhbkOI0knDwaXMR/KV ynF8jOkyTWZiWBQ6LyYIdUsHBIDJKtPBC9ltkmVvZnuKZGxzxkoYufYF7wR3FHS6NJVi trqr40N+goasT9LaPvaSkmA1OEDUjiA2VGjsM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; b=F/E1CkTDymtl1l4Ltbdnhx/PFlSTcvxgg+7flJ9mdJHMCOxoBRMYmCIkmYbrK5YFTf TrJ0aEebdmYVnjfn4FQ7ziL9Ac1MKz5mdArEcjser+8P69qsPWoFtyIKSyRtJXRuTWja WaWG0xtv2b0bz63ubIF+D9S/KGFLfTfA5X1f8= Original-Received: by 10.142.132.3 with SMTP id f3mr610089wfd.36.1301056234035; Fri, 25 Mar 2011 05:30:34 -0700 (PDT) Original-Received: from roll (c-174-56-1-147.hsd1.nm.comcast.net [174.56.1.147]) by mx.google.com with ESMTPS id w27sm1281670wfd.4.2011.03.25.05.30.29 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 25 Mar 2011 05:30:31 -0700 (PDT) In-Reply-To: <87ei5w7cci.fsf@lifelogs.com> (Ted Zlatanov's message of "Thu, 24 Mar 2011 10:43:57 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.160.41 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:137669 Archived-At: Ted Zlatanov writes: > On Wed, 23 Mar 2011 23:27:48 -0600 "Eric Schulte" wrote: > > ES> Just for completeness, a lazy.el file is attached implementing lazy > ES> sequences in Emacs Lisp. This is basically an exact copy of lazy.lisp > ES> with `lexical-let' used where closures are needed. > > Thanks, Eric. I'm not sure of the http://landoflisp.com/lazy.lisp > license. There's also http://www.common-lisp.org/project/clazy (very > similar to lazy.lisp), http://cl-heresy.sourceforge.net/Heresy.htm, > http://common-lisp.net/project/funds, and > http://www.common-lisp.org/project/fset all of which have different and > viable implementations (the common name seems to be "purely functional > data structures"). They all refer to SICP as a reference since it has a > similar implementation of the basic idea. Of all of them, lazy.lisp > seems most basic; funds and fset seem very data-oriented. > > Heresy seems like the most comprehensive and powerful package (see > http://cl-heresy.sourceforge.net/Heresy.htm for examples, details, and > functions provided). I'd love to use it but I don't know CL well so it > will take me some time to port it. Still, it has a BSD license and > should be OK as an ELPA package. Does that sound reasonable? Eric, are > you interested in helping me port it? > Sure, I can't guarantee any significant time commitment, but this would serve as a good CL learning experience for me, so count me as /on board/ to help to port cl-heresy to elisp. As a first step, I've copied the latest release of cl-heresy into a git repository on repo.or.cz [1]. Anyone can anonymously push to the mob branch of this repo (see [2]), and anyone who's interested in helping can send me their repo.or.cz username and I'll grant push permission for the master branch. Best -- Eric Footnotes: [1] http://repo.or.cz/w/el-heresy.git [2] http://repo.or.cz/h/mob.html