From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id YLUEJ4d75l51UAAA0tVLHw (envelope-from ) for ; Sun, 14 Jun 2020 19:33:27 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id YPW+Iod75l6SLQAAbx9fmQ (envelope-from ) for ; Sun, 14 Jun 2020 19:33:27 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 297289400B1 for ; Sun, 14 Jun 2020 19:33:27 +0000 (UTC) Received: from localhost ([::1]:33606 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jkYNi-000519-4p for larch@yhetil.org; Sun, 14 Jun 2020 15:33:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55364) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jkYNE-00050w-EQ for emacs-orgmode@gnu.org; Sun, 14 Jun 2020 15:32:56 -0400 Received: from relay12.mail.gandi.net ([217.70.178.232]:39481) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jkYNB-0001je-2Q for emacs-orgmode@gnu.org; Sun, 14 Jun 2020 15:32:56 -0400 Received: from localhost (40-67.ipv4.commingeshautdebit.fr [185.131.40.67]) (Authenticated sender: admin@nicolasgoaziou.fr) by relay12.mail.gandi.net (Postfix) with ESMTPSA id F068F200005; Sun, 14 Jun 2020 19:32:49 +0000 (UTC) From: Nicolas Goaziou To: Mario Frasca Subject: Re: [PATCH] may we focus on readability? References: Mail-Followup-To: Mario Frasca , emacs-orgmode@gnu.org Date: Sun, 14 Jun 2020 21:32:48 +0200 In-Reply-To: (Mario Frasca's message of "Sun, 14 Jun 2020 11:47:31 -0500") Message-ID: <871rmhe93z.fsf@nicolasgoaziou.fr> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=217.70.178.232; envelope-from=mail@nicolasgoaziou.fr; helo=relay12.mail.gandi.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/14 15:32:50 X-ACL-Warn: Detected OS = Linux 3.11 and newer 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -0.01 X-TUID: KpZGlYA9IVqO Hello, Mario Frasca writes: > I'm rewriting a complicated construction where there's an equality > test on the length of the list of non matching elements, with a > simpler cl-some invocation.=C2=A0 The replacing code is self explanatory. > > Subject: [PATCH] lisp/org-plot.el: reducing complexity of test. > > * lisp/org-plot.el (org-plot/gnuplot): readability of test, looking > for some non satisfying elements. > > I'm rewriting a complicated construction where there's an equality > test on the length of the list of non matching elements, with a > simpler cl-some invocation. The replacing code is self explanatory. > --- > lisp/org-plot.el | 19 ++++++------------- > 1 file changed, 6 insertions(+), 13 deletions(-) > > diff --git a/lisp/org-plot.el b/lisp/org-plot.el > index a23195d2a..f50ad09a9 100644 > --- a/lisp/org-plot.el > +++ b/lisp/org-plot.el > @@ -312,22 +312,15 @@ line directly before or after the table." > ;; Check for timestamp ind column. > (let ((ind (1- (plist-get params :ind)))) > (when (and (>=3D ind 0) (eq '2d (plist-get params :plot-type))) > - (if (=3D (length > - (delq 0 (mapcar > - (lambda (el) > - (if (string-match org-ts-regexp3 el) 0 1)) > - (mapcar (lambda (row) (nth ind row)) table)))) > - 0) > + (if (cl-some (lambda (el) > + (not (string-match org-ts-regexp3 el))) > + (mapcar (lambda (row) (nth ind row)) table)) > (plist-put params :timeind t) > ;; Check for text ind column. > (if (or (string=3D (plist-get params :with) "hist") > - (> (length > - (delq 0 (mapcar > - (lambda (el) > - (if (string-match org-table-number-regexp el) > - 0 1)) > - (mapcar (lambda (row) (nth ind row)) table)))) > - 0)) > + (cl-some (lambda (el) > + (not (string-match org-table-number-regexp el))) > + (mapcar (lambda (row) (nth ind row)) table)))) > (plist-put params :textind t))))) > ;; Write script. > (with-temp-buffer OK. Note you can go even further: nested `if' should be replaced with a `cond'. Also, further nit: (not (cl-every ...)) will apply `not' only once. In any case, it would be better if refactoring happens while introducing unit tests *hint*. Regards, --=20 Nicolas Goaziou