From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eric Abrahamsen Newsgroups: gmane.emacs.devel Subject: Re: Defining new sequence types for seq.el Date: Tue, 12 Nov 2019 16:16:55 -0800 Message-ID: <87a7904olk.fsf@ericabrahamsen.net> References: <871rud3ovl.fsf@ericabrahamsen.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="189595"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Nov 13 01:17:34 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iUgLl-000n92-IF for ged-emacs-devel@m.gmane.org; Wed, 13 Nov 2019 01:17:33 +0100 Original-Received: from localhost ([::1]:40532 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iUgLk-0001aW-Fd for ged-emacs-devel@m.gmane.org; Tue, 12 Nov 2019 19:17:32 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50978) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iUgLJ-0001aN-B4 for emacs-devel@gnu.org; Tue, 12 Nov 2019 19:17:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iUgLI-0003pS-Ej for emacs-devel@gnu.org; Tue, 12 Nov 2019 19:17:05 -0500 Original-Received: from 195-159-176-226.customer.powertech.no ([195.159.176.226]:57888 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iUgLI-0003nk-7x for emacs-devel@gnu.org; Tue, 12 Nov 2019 19:17:04 -0500 Original-Received: from list by blaine.gmane.org with local (Exim 4.89) (envelope-from ) id 1iUgLF-000mZZ-Cp for emacs-devel@gnu.org; Wed, 13 Nov 2019 01:17:01 +0100 X-Injected-Via-Gmane: http://gmane.org/ Cancel-Lock: sha1:f+dqbtVh7DFCPgMKYYURAKGv3Oc= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:242120 Archived-At: Juanma Barranquero writes: > On Tue, Nov 12, 2019 at 1:45 AM Eric Abrahamsen > wrote: > >> Do I need to use a struct with one slot? Any other tips? > > You could do something like: > > (setq my-list '(gnus-range (1 . 9) 35 120)) That did occur to me at some point, but seemed sort of hacky. But yes, it would work! I guess now I'm wondering how much benefit there is to integrating this with seq. How much code would be able to profit from the polymorphism, where we wanted to not to care whether a value was a range or a list? On the other hand, maybe it would be nice just to be able to hide the implementation. What I really wish is that I knew C, and could implement these as integer sets, at the C level. Maybe in a future career... Thanks for your answer, and for letting me talk out loud. Eric