From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: "Garreau\, Alexandre" Newsgroups: gmane.emacs.devel Subject: Re: Why is there no `until' in elisp? Date: Wed, 17 Oct 2018 23:49:36 +0200 Message-ID: <87woqg5jm7.fsf@portable.galex-713.eu> References: <87murdu6to.fsf@portable.galex-713.eu> <87lg6xgc58.fsf@portable.galex-713.eu> <86294998-2c96-a1be-6a83-2e34b7fa6046@cs.ucla.edu> <87d0s86zrs.fsf@portable.galex-713.eu> <5e6f544e-811f-fc0a-bc08-e77d601a4c4d@cs.ucla.edu> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1539812914 16458 195.159.176.226 (17 Oct 2018 21:48:34 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 17 Oct 2018 21:48:34 +0000 (UTC) User-Agent: Gnus (5.13), GNU Emacs 25.1.1 (i686-pc-linux-gnu) Cc: Yuri Khan , Stefan Monnier , Emacs developers To: Paul Eggert Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 17 23:48:29 2018 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 1gCtg3-00049O-Kt for ged-emacs-devel@m.gmane.org; Wed, 17 Oct 2018 23:48:27 +0200 Original-Received: from localhost ([::1]:39242 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gCtiA-0003pb-7O for ged-emacs-devel@m.gmane.org; Wed, 17 Oct 2018 17:50:38 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:55383) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gCthI-0003pL-RB for emacs-devel@gnu.org; Wed, 17 Oct 2018 17:49:45 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gCthH-0007FC-Qk for emacs-devel@gnu.org; Wed, 17 Oct 2018 17:49:44 -0400 Original-Received: from portable.galex-713.eu ([2a00:5884:8305::1]:51420) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gCthG-00073f-5V for emacs-devel@gnu.org; Wed, 17 Oct 2018 17:49:42 -0400 Original-Received: from localhost ([::1] helo=portable.galex-713.eu) by portable.galex-713.eu with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gCthA-0005xS-OP; Wed, 17 Oct 2018 23:49:36 +0200 X-GPG-FINGERPRINT: E109 9988 4197 D7CB B0BC 5C23 8DEB 24BA 867D 3F7F X-Accept-Language: fr, en, it, eo In-Reply-To: <5e6f544e-811f-fc0a-bc08-e77d601a4c4d@cs.ucla.edu> (Paul Eggert's message of "Wed, 17 Oct 2018 14:35:13 -0700") X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:5884:8305::1 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:230464 Archived-At: Le 17/10/2018 =C3=A0 14h35, Paul Eggert a =C3=A9crit=C2=A0: > On 10/17/18 2:15 PM, Garreau, Alexandre wrote: >> =E2=80=9Cwhile=E2=80=9D as used in natural language does *not* mean the = same thing > > [=E2=80=A6] And the same is true for "until". How=E2=80=99s that? > But I'm not objecting to the keyword's spelling: I'm objecting to a > syntax where a condition C is placed immediately before a place where > C is false. This is confusing! When I read "C" I should be mentally > thinking "OK, now C is true". This is elementary notation design. I=E2=80=99m not. If it works in english such as =E2=80=9Cuntil you have mo= ney you will not be able to buy it=E2=80=9D I don=E2=80=99t see the problem. >> It is still more natural and meaningful to say =E2=80=9Cuntil I=E2=80=99= m not hungry >> anymore I eat=E2=80=9D instead of =E2=80=9Cwhile I=E2=80=99m hungry I ea= t=E2=80=9D, > > Not at all. Most English-speakers would say that the latter is far > more readable. Certainly more readable, because it is simpler. But how about *more natural*? I find =E2=80=9Cuntil=E2=80=9D be a lot more used in all the lan= guages I know, including english. >>> the Elisp syntax for the proposed loop construct should *not* be >>> (until C S). >> >> And what should it be then? > > Why not use cl-loop? Although it's not perfect it's good enough, and > it's better than introducing a seemingly-simple but deeply confusing > syntax. The most obvious and only implementation of `unless', I ever seen *until now* is (while (not cond) body) (see how this sentence breaked your rule while being the more natural formulation). It=E2=80=99s only subjectively,= thus seemingly, deeply confusing, thus =E2=80=9Cnot perfect=E2=80=9D as well, ye= t =E2=80=9Cgood enough=E2=80=9D in my mind, so to make programs easier to read and write, w= hile cl-loop is deeply, not only seemingly, complex, especially about its syntax: so it=E2=80=99s the other way around I=E2=80=99d say (though cl-loo= p too accepts both post- and pre-cond afaik).