From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#58278: Add new function seq-keep Date: Tue, 04 Oct 2022 15:47:16 +0200 Message-ID: <87h70j7laz.fsf@gnus.org> References: <87y1twtx22.fsf@bernoul.li> <87pmf84ggg.fsf@gnus.org> <87v8ozu50r.fsf@bernoul.li> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3230"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: 58278@debbugs.gnu.org To: Jonas Bernoulli Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Oct 04 16:52:18 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ofjHN-0000ew-SU for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 04 Oct 2022 16:52:17 +0200 Original-Received: from localhost ([::1]:48624 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ofjHM-0000ki-S9 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 04 Oct 2022 10:52:16 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50642) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ofiHD-00058N-7i for bug-gnu-emacs@gnu.org; Tue, 04 Oct 2022 09:48:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:53878) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ofiHC-0003Qz-4l for bug-gnu-emacs@gnu.org; Tue, 04 Oct 2022 09:48:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ofiHC-0004qp-0y for bug-gnu-emacs@gnu.org; Tue, 04 Oct 2022 09:48:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 04 Oct 2022 13:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 58278 X-GNU-PR-Package: emacs Original-Received: via spool by 58278-submit@debbugs.gnu.org id=B58278.166489124918497 (code B ref 58278); Tue, 04 Oct 2022 13:48:01 +0000 Original-Received: (at 58278) by debbugs.gnu.org; 4 Oct 2022 13:47:29 +0000 Original-Received: from localhost ([127.0.0.1]:52952 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ofiGe-0004oH-Kd for submit@debbugs.gnu.org; Tue, 04 Oct 2022 09:47:28 -0400 Original-Received: from quimby.gnus.org ([95.216.78.240]:46368) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ofiGc-0004o3-99 for 58278@debbugs.gnu.org; Tue, 04 Oct 2022 09:47:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References: In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=cHEPhHKba2SsJTJTsH5RmFkZigibQtwLwpqBRqHy3AU=; b=RMSywVeDGUc+bNOnTdRu/+8Qxa pfykaoZ0QYIne0sHERdTK2nyOZ+ehlJgo2ke4+TgdNF9ab4FkhnOEx9lCB3X94vCkJekKSRZPTVhI IaMeQ4Eit7aGSbqXHTuncvWyofnck1+1ovuIgni8FuIy7n0POLzJnXDqmUpkWJY/udA0=; Original-Received: from [84.212.220.105] (helo=downe) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ofiGT-0004NH-Ca; Tue, 04 Oct 2022 15:47:19 +0200 In-Reply-To: <87v8ozu50r.fsf@bernoul.li> (Jonas Bernoulli's message of "Tue, 04 Oct 2022 14:50:28 +0200") Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAACBj SFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAElBMVEWdkXFgYltBNSxv gX6urpL////1g5C3AAAAAWJLR0QF+G/pxwAAAAd0SU1FB+YKBA0qBkfLJ4cAAAGISURBVDjLdZPh kYQgDIXhoAACV4BQAcgWwI70X9O9BHTVc/PDGfKRl5BEpa5GbAn2zT+B/sEZXv8AioB4A1eprzn8 HdBufgJTqLIRhVpD7/09gaYTeF1AGCCAnYEJNbzs9h9o3M6qllCRrB/AKgOgACBW6QDNtgFMgFLN B+i9aZIIgCJFTdAkh6r8naBMYPrGUgBBlDYBrXcGmkYm+BE4cwCQDiajQlwrs1eWQXf8nmb10nUa fUcwcvRsM3RKWt4+0ZAaYHPZKEgsKUUKEmG5qt7IKi8DinGXQqEvPNLhxI7Ic/8AYxw2QULSBSDx mhh4BuUETGBpdt9BphX3JcsH1K6ckWP6Byx6PHLz/sR9tI03hR3k0Ftp1ogA4KctRL8dW/aRyuot b9ZRnkGobYKApoY17T1B3SNHFv4BR47sXMh63TuyV6UwCl6vZ6BOYP8NMDxXz0C6i2kTRyD/FcBB bvxRZW+JSHEnNJ1stlIRPXjvwMdH4GnsyQRjAHL5JCQgzZFeTaUv9gchl3huqTRFngAAACV0RVh0 ZGF0ZTpjcmVhdGUAMjAyMi0xMC0wNFQxMzo0MjowNiswMDowMGSjw44AAAAldEVYdGRhdGU6bW9k aWZ5ADIwMjItMTAtMDRUMTM6NDI6MDYrMDA6MDAV/nsyAAAAAElFTkSuQmCC X-Now-Playing: Latin Quarter's _Modern Times_: "Radio Africa" X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:244439 Archived-At: Jonas Bernoulli writes: > Yes, that would be an improvement. Some (but certainly not all) > uses of dash's `-keep' look something like > > (-keep (lambda (elt) > (and (symbolp elt) > (symbol-name elt))) > sequence) > > and > > (seq-keep #'symbol-name sequence #'symbolp) > > would be much nicer in those situations. Hm... That's not exactly what I was thinking here. I was thinking (cl-defgeneric seq-keep (func sequence &optional pred) (if pred (seq-filter pred (seq-mapcar func sequence)) (delq nil (seq-mapcar func sequence)))) which is the traditional "keep" semantics, but allows extending the concept of "keep" to more than "is non-nil". But that may well be an overcomplication -- in the unusual cases where it's not nil that people want to keep, they can just type (seq-filter pred (seq-mapcar func sequence)) themselves, which has very clear semantics. So I think, on second consideration, I'd rather just go with (cl-defgeneric seq-keep (func sequence) (delq nil (seq-mapcar func sequence))) like you originally suggested (but with just an argument name change).