From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tomas Hlavaty Newsgroups: gmane.emacs.devel Subject: Re: lengths and other stuff Date: Mon, 28 Dec 2020 00:25:32 +0100 Message-ID: <87czyuq1ar.fsf@logand.com> References: <87o8ivumn5.fsf@telefonica.net> <87y2hlt82w.fsf@db48x.net> <87lfdlvsw4.fsf@logand.com> <83h7o8ncly.fsf@gnu.org> <87pn2wudab.fsf@db48x.net> <87mty0c3m1.fsf@gnus.org> <83czywnb86.fsf@gnu.org> <87im8ob707.fsf@gnus.org> <87eejcb6nx.fsf@gnus.org> <875z4ob5c9.fsf@gnus.org> <87a6u09nkq.fsf@gnus.org> <875z4o9jdg.fsf@gnus.org> <87r1nb8yoj.fsf@gnus.org> <83blefkte2.fsf@gnu.org> <87h7o69aa8.fsf@gnus.org> <87pn2uq3ty.fsf@logand.com> <87ft3qq2kz.fsf@logand.com> <8735zqsvc8.fsf_-_@db48x.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11890"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "Alfred M. Szmidt" , eliz@gnu.org, larsi@gnus.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Daniel Brooks Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Dec 28 00:26:35 2020 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 1ktfQp-00031F-HK for ged-emacs-devel@m.gmane-mx.org; Mon, 28 Dec 2020 00:26:35 +0100 Original-Received: from localhost ([::1]:52868 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ktfQo-0004gq-Iw for ged-emacs-devel@m.gmane-mx.org; Sun, 27 Dec 2020 18:26:34 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45428) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ktfPt-0003xK-Jm for emacs-devel@gnu.org; Sun, 27 Dec 2020 18:25:37 -0500 Original-Received: from logand.com ([37.48.87.44]:54154) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ktfPr-00037E-Nu; Sun, 27 Dec 2020 18:25:37 -0500 Original-Received: by logand.com (Postfix, from userid 1001) id D16C119F685; Mon, 28 Dec 2020 00:25:33 +0100 (CET) X-Mailer: emacs 26.3 (via feedmail 11-beta-1 I) In-Reply-To: <8735zqsvc8.fsf_-_@db48x.net> Received-SPF: pass client-ip=37.48.87.44; envelope-from=tom@logand.com; helo=logand.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-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:261947 Archived-At: On Sun 27 Dec 2020 at 15:05, Daniel Brooks wrote: > Some of them can no doubt be replaced by multiple-value-bind and other > such things. This one from ido.el:1518, for example: > > (if (and (listp (car l)) > (> (length (car l)) 2) > (let ((dir (car (car l))) > (time (car (cdr (car l)))) > (files (cdr (cdr (car l))))) > > could be (multiple-value-bind (dir time files) (car l) =E2=80=A6). > > But those kinds of improvements take a lot more thought about each > occurrence. Very good. Now the other ~1700 cases. I think you introduced two bugs: 1) missing &rest, it should be: (multiple-value-bind (dir time &rest files) (car l) =E2=80=A6) 2) multiple-value-bind throws an error if it does not fit. The original code does not seem to throw an error. But all this excercise for single case took mental effort, got it wrong and the change would need to be carefully undertaken. The point of the predicates is to avoid such rewrites and improve the code simply by search, replace and visual substitution without thinking hard and introducing bugs.