[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#59328: 29.0.50; `seq-keep' implementation only valid for lists
From: |
Michael Heerdegen |
Subject: |
bug#59328: 29.0.50; `seq-keep' implementation only valid for lists |
Date: |
Thu, 17 Nov 2022 03:17:46 +0100 |
Hello,
[FWIW I tried to reopen 58278 but it seemed to...complicated for me]
The current implementation of the (non-generic!) function `seq-keep':
#+begin_src emacs-lisp
(defun seq-keep (function sequence)
(delq nil (seq-map function sequence)))
;; ^^^^
#+end_src
obviously only works when `seq-map' returns a list. This is the case
for the default implementation of the generic function `seq-map' but not
necessarily for other implementations of `seq-map'.
We need to filter out the `nil' elements with a way appropriate for any
sequence type supported by "seq.el" (i.e. with a generic function
defined in this lib), e.g.
#+begin_src emacs-lisp
(defun seq-keep (function sequence)
(seq-filter #'identity (seq-map function sequence)))
#+end_src
BTW, is the name a good one? Why "keep"? It returns a sequence of
potentially all completely different elements. And is the function that
useful and a good abstraction at all (I don't have thought about it
too long...)?
TIA,
Michael.
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists,
Michael Heerdegen <=
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Eli Zaretskii, 2022/11/19
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Michael Heerdegen, 2022/11/24
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Eli Zaretskii, 2022/11/24
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Michael Heerdegen, 2022/11/24
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Eli Zaretskii, 2022/11/24
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Michael Heerdegen, 2022/11/24
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Eli Zaretskii, 2022/11/24
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Michael Heerdegen, 2022/11/24
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Eli Zaretskii, 2022/11/24
- bug#59328: 29.0.50; `seq-keep' implementation only valid for lists, Michael Heerdegen, 2022/11/25