From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: Easy to add with push but not to the end of a list Date: Tue, 29 Nov 2022 10:54:17 +0100 Message-ID: <87k03eozli.fsf@dataswamp.org> References: <878rju96i5.fsf@dataswamp.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8312"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:YrBmhXz7NDu2cN9WdX42xfO6HHk= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Nov 30 14:51:25 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 1p0NUj-0001tu-Cu for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 30 Nov 2022 14:51:25 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p0NUV-00023J-Rw; Wed, 30 Nov 2022 08:51:12 -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 1ozxJu-0003eo-92 for help-gnu-emacs@gnu.org; Tue, 29 Nov 2022 04:54:30 -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 1ozxJs-0007PJ-G3 for help-gnu-emacs@gnu.org; Tue, 29 Nov 2022 04:54:30 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1ozxJo-0002f6-By for help-gnu-emacs@gnu.org; Tue, 29 Nov 2022 10:54:24 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never 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-Mailman-Approved-At: Wed, 30 Nov 2022 08:51:10 -0500 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:141262 Archived-At: Heime wrote: >> Programming is somewhere between engineering and craft. >> In these realms, you usually try to think about what tools >> are appropriate for a job. > > Programming has got nothing to do with engineering or craft. Unheard of :O > Stefan mentioned using reverse to put it into another list. > If needed the execution time would not be much different > than actually place new elements at end of list. I think the lists has to be double linked for it to be theoretically possible to push-last in constant or O(1) time, otherwise, with our car/cdr lists that are one-directional or single linked, the execution time of such an operation will be proportional to the length of the list, i.e. the number of elements, so it'll be linear time or O(n) where n is the number of elements of a conceptual/arbitrary list. But also in practice! Only for you to notice it, i.e. the difference between O(1) and O(n), the list probably has to be pretty long, so a large n then ... Start testing ... > Nobody will get hurt. Just inefficient for long lists or for > large number of calls. That's exactly right. -- underground experts united https://dataswamp.org/~incal