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: Internationalize Emacs's messages (swahili) Date: Sun, 27 Dec 2020 23:30:49 +0100 Message-ID: <87pn2uq3ty.fsf@logand.com> References: <87o8ivumn5.fsf@telefonica.net> <83pn30pku5.fsf@gnu.org> <86wnx8otoj.fsf@163.com> <834kkbp9vr.fsf@gnu.org> <87czyxuxw6.fsf@db48x.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> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31433"; mail-complaints-to="usenet@ciao.gmane.io" Cc: monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Lars Ingebrigtsen , Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Dec 27 23:32:54 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 1kteas-00085T-FK for ged-emacs-devel@m.gmane-mx.org; Sun, 27 Dec 2020 23:32:54 +0100 Original-Received: from localhost ([::1]:33666 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ktear-00071e-Hb for ged-emacs-devel@m.gmane-mx.org; Sun, 27 Dec 2020 17:32:53 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36304) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kteYy-0006BS-4A for emacs-devel@gnu.org; Sun, 27 Dec 2020 17:30:58 -0500 Original-Received: from logand.com ([37.48.87.44]:48016) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kteYw-0001vJ-BN; Sun, 27 Dec 2020 17:30:55 -0500 Original-Received: by logand.com (Postfix, from userid 1001) id 7902D19F66D; Sun, 27 Dec 2020 23:30:52 +0100 (CET) X-Mailer: emacs 26.3 (via feedmail 11-beta-1 I) In-Reply-To: <87h7o69aa8.fsf@gnus.org> 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:261927 Archived-At: On Sun 27 Dec 2020 at 23:03, Lars Ingebrigtsen wrote: > Eli Zaretskii writes: >> Like Richard, I think that not all of the functions are needed, >> because some can be trivially expressed by others. > Yes, I think <, = and > are the ones that are nice to have. The /=, > <= and >= are trivial to express via the others, so I didn't go there. >> Why do we need to stray from that principle in this case? And if we >> must have all of those functions > People say (if (< (length ...))) and (if (> (length... ))) (and =) all > over the place -- it's not used as a sorting predicate, so having the > these three seemed like the minimal set. It is unlikely that people stop counting all elements of lists. However, if somebody writes such code, it is almost trivial to fix it with search and replace: "(= (length" -> "(length=" "(< (length" -> "(length<" "(> (length" -> "(length>" "(/= (length" -> "(length/=" "(<= (length" -> "(length<=" "(>= (length" -> "(length>=" (plus extra closing paren) The "symmetry" (or exhaustiveness?) here is to assist with easily fixing bad code with minimum changes, i.e. one does not need to think how to express it using different code. Example: (<= (length ...) ...) -> (not (length> ...)) Visually different. (I hope I got it right:-) versus: (<= (length ...) ...) -> (length<= ...) Visually same. So once in a while, it will be possible to search and replace those bad cases without any mental overhead, just with visual review. In any case, thanks for taking initiative and improving this!