unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Daniel Colascione <dancol@dancol.org>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Leo Liu <sdl.web@gmail.com>, emacs-devel@gnu.org
Subject: Re: Generators (iterators) for Gnu Emacs
Date: Fri, 05 Dec 2014 17:08:26 -0500	[thread overview]
Message-ID: <54822CDA.1030508@dancol.org> (raw)
In-Reply-To: <jwv1toeymrj.fsf-monnier+emacs@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 792 bytes --]

On 12/05/2014 01:32 PM, Stefan Monnier wrote:
>> I'd really rather signal to stop iteration. That way, it's harder to ignore
>> end-of-iteration and loop forever and it remains possible to iterate over
>> *any* value. condition-case is setjmp. I'm not *that* concerned by
>> performance. The only other reasonable alternative is for iterators to
>> yield a cons (terminal-p . value), and consing is going to be much worse
>> than condition-case.
> 
> The alternative I was thinking was to return a unique value, as in:
> 
>    (defvar gen-eog (make-symbol "¡end-of-generator!"))
>    (defun gen-eog-p (x) (eq x gen-oeg))
> 

Right. That's the approach I don't like: now there's a value you can't enumerate. What if you wanted to enumerate, say, the values of all symbols?
	


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2014-12-05 22:08 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-04 23:43 Generators (iterators) for Gnu Emacs Michael Heerdegen
2014-12-05  1:55 ` Stefan Monnier
2014-12-05  2:42   ` Leo Liu
2014-12-05  3:23     ` Daniel Colascione
2014-12-05  3:32       ` Leo Liu
2014-12-05  4:19         ` Stefan Monnier
2014-12-05  8:52           ` Leo Liu
2014-12-05 14:40             ` Stefan Monnier
2014-12-05 14:48             ` Stefan Monnier
2014-12-05 15:34               ` Daniel Colascione
2014-12-05 18:32                 ` Stefan Monnier
2014-12-05 22:08                   ` Daniel Colascione
2014-12-06  9:38                     ` Stephen J. Turnbull
2014-12-05 22:08                   ` Daniel Colascione
2014-12-05 22:08                   ` Daniel Colascione
2014-12-05 22:08                   ` Daniel Colascione [this message]
2014-12-05 22:08                   ` Daniel Colascione
2014-12-05 22:08                   ` Daniel Colascione
2014-12-05 22:08                   ` Daniel Colascione
2014-12-05 22:08                   ` Daniel Colascione
2014-12-05 22:08                   ` Daniel Colascione
2014-12-05  9:54   ` David Kastrup
2014-12-05 14:51     ` Stefan Monnier
2014-12-05 17:12       ` Michael Heerdegen
2014-12-05 18:34         ` Stefan Monnier
2014-12-05 19:06           ` Michael Heerdegen
2014-12-06  3:53             ` Stefan Monnier
2014-12-05 18:01   ` Michael Heerdegen
2014-12-05 19:19     ` Stefan Monnier
2014-12-05 22:54       ` Michael Heerdegen
2014-12-05  5:47 ` Thierry Volpiatto
2014-12-05 14:49   ` Stefan Monnier
2014-12-05 17:20     ` Michael Heerdegen
2014-12-05 19:16       ` Stefan Monnier
2014-12-05 22:26         ` Daniel Colascione
2014-12-06  0:13           ` Michael Heerdegen
2014-12-06  0:22             ` Michael Heerdegen
2014-12-06  4:09           ` Stefan Monnier
2014-12-06  9:12             ` Daniel Colascione
2014-12-06 22:24               ` Stefan Monnier
2014-12-07  3:10                 ` Daniel Colascione
2014-12-07  6:12                   ` Stefan Monnier
2014-12-07  7:51                     ` Daniel Colascione
2014-12-07 16:22                       ` Ted Zlatanov
2014-12-07 17:40                         ` Namespace macros (was: Generators (iterators) for Gnu Emacs) Helmut Eller
2014-12-08  0:11                           ` Artur Malabarba
2014-12-08  7:55                             ` Namespace macros Helmut Eller
2014-12-08  8:36                               ` Artur Malabarba
2014-12-08  9:17                                 ` Helmut Eller
2014-12-08 11:02                                   ` Artur Malabarba
2014-12-08 11:21                                     ` Dmitry Gutov
2014-12-08 11:42                                       ` Artur Malabarba
2014-12-08 11:52                                         ` Dmitry Gutov
2014-12-08 12:52                                     ` Helmut Eller
2014-12-08 20:59                                       ` Richard Stallman
2014-12-08 23:37                                         ` Artur Malabarba
2014-12-09  0:25                                         ` Helmut Eller
2014-12-07 18:30                         ` Generators (iterators) for Gnu Emacs Drew Adams
2014-12-08  0:25                         ` Richard Stallman
2014-12-08  1:21                           ` Daniel Colascione
2014-12-08  5:34                             ` Drew Adams
2014-12-08 20:59                               ` Richard Stallman
2014-12-08 21:48                                 ` Stefan Monnier
2014-12-09 19:35                                   ` namespaces Ivan Shmakov
2014-12-08 20:59                             ` Generators (iterators) for Gnu Emacs Richard Stallman
     [not found]                         ` <<E1Xxm91-0000jQ-Mr@fencepost.gnu.org>
     [not found]                           ` <<5484FD09.60603@dancol.org>
     [not found]                             ` <<9ae6762d-a52a-4a06-b2e9-dab893a22d38@default>
     [not found]                               ` <<E1Xy5Os-0004cU-HF@fencepost.gnu.org>
2014-12-08 21:17                                 ` Drew Adams
2014-12-07 16:51                       ` Stefan Monnier
2014-12-07 17:29                         ` Nic Ferrier
2014-12-07 21:17                           ` Stefan Monnier
2014-12-07 21:26                             ` Nic Ferrier
2014-12-07 21:32                             ` Daniel Colascione
2014-12-07 21:43                               ` Drew Adams
2014-12-07 23:31                               ` Stefan Monnier
2014-12-07 23:39                                 ` Daniel Colascione
2014-12-08  2:23                                   ` Stefan Monnier
2014-12-08  2:24                                     ` Daniel Colascione
2014-12-08  3:23                                       ` Stefan Monnier
2014-12-08 10:01                                         ` Thien-Thi Nguyen
2014-12-08 20:35                                         ` David Engster
2014-12-08 21:45                                           ` Stefan Monnier
2014-12-08  0:18                                 ` Dmitry Gutov
2014-12-08  2:25                                   ` Stefan Monnier
2014-12-08  2:55                                     ` Dmitry Gutov
2014-12-07  8:54                 ` David Kastrup
2014-12-07  9:25                   ` Stephen J. Turnbull
     [not found] <<877fy77zhp.fsf@web.de>

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54822CDA.1030508@dancol.org \
    --to=dancol@dancol.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=sdl.web@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).