From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: Improve `replace-regexp-in-string' ergonomics? Date: Tue, 12 Oct 2021 22:16:31 +0300 Organization: LINKOV.NET Message-ID: <874k9m835c.fsf@mail.linkov.net> References: <878rzpw7jo.fsf@gnus.org> <875yuban9b.fsf@mail.linkov.net> <871r4qalit.fsf@mail.linkov.net> <87h7dme953.fsf@gnus.org> <87r1cqct4f.fsf@gnus.org> <87ily2v04e.fsf@posteo.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5169"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (x86_64-pc-linux-gnu) Cc: Lars Ingebrigtsen , Stefan Monnier , emacs-devel@gnu.org To: Thierry Volpiatto Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Oct 12 22:02:09 2021 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 1maNyS-000166-Mi for ged-emacs-devel@m.gmane-mx.org; Tue, 12 Oct 2021 22:02:08 +0200 Original-Received: from localhost ([::1]:48316 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1maNyR-0001OB-Nv for ged-emacs-devel@m.gmane-mx.org; Tue, 12 Oct 2021 16:02:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59954) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1maNvN-00076Z-O6 for emacs-devel@gnu.org; Tue, 12 Oct 2021 15:58:57 -0400 Original-Received: from relay10.mail.gandi.net ([217.70.178.230]:42471) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1maNvL-0001uz-AE for emacs-devel@gnu.org; Tue, 12 Oct 2021 15:58:57 -0400 Original-Received: (Authenticated sender: juri@linkov.net) by relay10.mail.gandi.net (Postfix) with ESMTPSA id CC8EA240004; Tue, 12 Oct 2021 19:58:49 +0000 (UTC) In-Reply-To: <87ily2v04e.fsf@posteo.net> (Thierry Volpiatto's message of "Tue, 12 Oct 2021 13:33:21 +0000") Received-SPF: pass client-ip=217.70.178.230; envelope-from=juri@linkov.net; helo=relay10.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:276831 Archived-At: > What about providing a simple anaphoric `and`? > > (let ((bar "bar")) > (helm-aand bar > (replace-regexp-in-string "b" "f" it) > (replace-regexp-in-string "a" "o" it) > (replace-regexp-in-string "r" "o" it))) > =>"foo" What does the following return? (let ((bar "bar")) (helm-aand bar (replace-regexp-in-string "b" "f" it) (replace-regexp-in-string "f" "o" it))) If it returns "oar" then it applies replacements sequentially, and we have no problem with such implementations. But we need an alternative version that performs simultaneous replacements and returns "far".