From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.devel Subject: Re: RFC: String interpolation Date: Wed, 14 Dec 2016 00:55:17 +0100 Message-ID: References: <51825111-ace4-f750-4077-026a3b648d27@gmail.com> <8737hwnc52.fsf@lifelogs.com> <8c117f5c-209a-97d8-79ce-a78f707f0545@gmail.com> <76c9c475-0180-aa49-3d4a-006d4e3f943c@gmail.com> <89a6a20d-e135-caad-6b31-760ab7ac90fc@cs.ucla.edu> <87fultkjte.fsf@lifelogs.com> <3ff9e7e4-aee7-191e-5e3b-4d4ac0006a1f@cs.ucla.edu> <9e138d20-782d-2a56-75f8-37e3fa1885df@cs.ucla.edu> <4e9c0a7e-2d44-5fc7-79d8-7b19758fef01@cs.ucla.edu> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1481673367 18470 195.159.176.226 (13 Dec 2016 23:56:07 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 13 Dec 2016 23:56:07 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) Cc: rms@gnu.org, emacs-devel@gnu.org To: Paul Eggert Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Dec 14 00:56:00 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cGwvN-00034u-B6 for ged-emacs-devel@m.gmane.org; Wed, 14 Dec 2016 00:55:57 +0100 Original-Received: from localhost ([::1]:44672 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cGwvR-0005Qb-JH for ged-emacs-devel@m.gmane.org; Tue, 13 Dec 2016 18:56:01 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49648) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cGwur-0005EH-7W for emacs-devel@gnu.org; Tue, 13 Dec 2016 18:55:26 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cGwuo-0006aM-5g for emacs-devel@gnu.org; Tue, 13 Dec 2016 18:55:25 -0500 Original-Received: from hermes.netfonds.no ([80.91.224.195]:42409) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cGwun-0006ZT-Vv; Tue, 13 Dec 2016 18:55:22 -0500 Original-Received: from cm-84.215.1.64.getinternet.no ([84.215.1.64] helo=stories) by hermes.netfonds.no with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1cGwuk-0007vJ-4n; Wed, 14 Dec 2016 00:55:20 +0100 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAMFBMVEUaGRwtLivZ2dr8/PzC wr+lpan39/bx8fBPUE/////+//6ysrDo6OGenp9ycnCOjpIHUFehAAAAp0lEQVQ4jWOYiQMw0FBi Mi6JaXSwHE1iFi6J6SQZNc2Sqq6insT0L+d9olVj9mi6T3ZCkZjf8YK1MVCU7wnvnMaVKBLhr0V/ /OhnfC83+cdKSDBAJRrfsTZuFBV40VjEi6JjzpX6TSG5d7y3Lk26SpFzM8nw4HCUmF45jQyjFuOS SCNgVJElDonF6ILTcFk+fdZJHHZM1pyOy/LZuCTmM8DKCLR8ZQcAp9molQT2Sn8AAAAASUVORK5C YII= In-Reply-To: <4e9c0a7e-2d44-5fc7-79d8-7b19758fef01@cs.ucla.edu> (Paul Eggert's message of "Tue, 13 Dec 2016 10:05:42 -0800") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 80.91.224.195 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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:210421 Archived-At: Paul Eggert writes: > (message (concat "Clock stopped at %s after " > (org-minutes-to-clocksum-string (+ (* 60 h) m)) > "%s") > te (if remove " => LINE REMOVED" "")) > > could be rewritten this way: > > (message "Clock stopped at %s%" te > " after %s%" (org-minutes-to-clocksum-string (+ (* 60 h) m)) > "%s" (if remove " => LINE REMOVED" "")) I've been trying out this syntax a bit (just rewriting a few statements to see whether they look better or worse than the old statements :-)), and I think I kinda like it. It seems clean and there's no "magic", so there are no corner cases that I can see. The number of ""s may be an impediment against using it in some cases, though. If you look at a simple format statement today: (message "The time is %d in the %s bit of %s" clock part country) I don't think you'd want to rewrite that to (message "The time is %d%" clock " in the %s%" part " bit of %s%" country) Or would you? (The final "%" is optional, of course.") It has the advantage that you don't have to count to match up variables with formatting statements, but it's not as immediately clear what the resulting string will end up looking like. Hm... -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no