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.devel Subject: Re: recursion to iteration macro Date: Sat, 23 Mar 2024 11:40:07 +0100 Message-ID: <87edc11baw.fsf@dataswamp.org> References: <871q813mgg.fsf@dataswamp.org> <87le69e812.fsf@posteo.net> <87h6gx1cdb.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="32219"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:o5rYsG5ML2/vhEFoJlQexGi6l10= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Mar 23 12:03:05 2024 Return-path: Envelope-to: ged-emacs-devel@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 1rnz9U-00089u-Jg for ged-emacs-devel@m.gmane-mx.org; Sat, 23 Mar 2024 12:03:04 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rnz8X-0003N4-Ft; Sat, 23 Mar 2024 07:02:05 -0400 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 1rnynU-00080P-RE for emacs-devel@gnu.org; Sat, 23 Mar 2024 06:40:20 -0400 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 1rnynS-0000ex-9d for emacs-devel@gnu.org; Sat, 23 Mar 2024 06:40:19 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1rnynP-0000tK-5Q for emacs-devel@gnu.org; Sat, 23 Mar 2024 11:40:15 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@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: Sat, 23 Mar 2024 07:02:00 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:317248 Archived-At: tomas wrote: >>> At least for tail-call recursion, named-let will turn >>> recursive code into iterative code. >>> >>> But generally speaking, if you need to accumulate data on >>> the stack, then it becomes a lot more difficult. >> >> Why is that so difficult, isn't a stack just a list with >> `push' and `pop'? > > Only usually *much* more efficient. How do you propose the virtual stack be implemented? The goal is to have recursion syntax but iteration execution transparently and seamlessly, other than that we will just make it as efficient as possible. -- underground experts united https://dataswamp.org/~incal