From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: Easy to add with push but not to the end of a list Date: Mon, 28 Nov 2022 17:24:46 -0500 Message-ID: References: <878rju96i5.fsf@dataswamp.org> Reply-To: Stefan Monnier Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23191"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:UMBPOSlyLeKLsyPKM52HlMv979k= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Nov 28 23:25:22 2022 Return-path: Envelope-to: geh-help-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 1ozmYz-0005st-6y for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 28 Nov 2022 23:25:21 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ozmYa-00035p-7t; Mon, 28 Nov 2022 17:24:56 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ozmYY-00035S-LV for help-gnu-emacs@gnu.org; Mon, 28 Nov 2022 17:24:54 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ozmYX-0005WL-2z for help-gnu-emacs@gnu.org; Mon, 28 Nov 2022 17:24:54 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1ozmYV-0005Dl-0T for help-gnu-emacs@gnu.org; Mon, 28 Nov 2022 23:24:51 +0100 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:141230 Archived-At: >> > That's because adding to the end of a Lisp list is >> > a bad idea. > The bad idea comment disregards necessity. Another way to look at it is that you disregard the possibility to change your necessity. > Suppose I am accumulating indicators that are done at increasing value > of time and want to introduce them into another list in the order they > were encountered. What should one handle these things? Add them in the reverse order and finish with a simple `reverse`. That's a very standard design pattern with singly-linked lists (and in many/most cases the final `reverse` can be an `nreverse`). Of course, in practice I'm sure there are many other options if you consider the problem in context where you can make changes to other parts of your code (e.g. to use something else than a list). Stefan