GNU bug report logs - #59328
29.0.50; `seq-keep' implementation only valid for lists

Previous Next

Package: emacs;

Reported by: Michael Heerdegen <michael_heerdegen <at> web.de>

Date: Thu, 17 Nov 2022 02:19:02 UTC

Severity: wishlist

Found in version 29.0.50

Full log


View this message in rfc822 format

From: Michael Heerdegen <michael_heerdegen <at> web.de>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: larsi <at> gnus.org, jonas <at> bernoul.li, 59328 <at> debbugs.gnu.org
Subject: bug#59328: 29.0.50; `seq-keep' implementation only valid for lists
Date: Thu, 24 Nov 2022 16:25:44 +0100
Eli Zaretskii <eliz <at> gnu.org> writes:

> > Without that change `seq-keep' would error for sequence types like
> > streams.  Try for example
> >
> > #+begin_src emacs-lisp
> > (require 'stream)
> > (seq-keep
> >  (lambda (x) (and (<= 0 x) x))
> >  (stream (list -1 2 -3 4)))
> > #+end_src
>
> Didn't you just say that 'stream' is not in Emacs?  If I try the above, the
> debugger kicks in right on the 'require' line.

Yes.

But seq-keep is not a generic function, so it would be broken for
sequence types defined elsewhere, and there is no way for those other
sequence types to fix this.  Defining a generic interface for sequences
would not make much sense if it then only supports lists (and maybe
vectors).

So we want to support cases like streams.  Since seq-keep can be
expressed and is semantically equivalent a simple concetanation of
existing sequence operations there is probably no need to define it as
generic function.  We just need to implement it correctly to support any
otherwise supported type of sequences.

Michael.




This bug report was last modified 124 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.