Received: from mx0.gmx.net (mx0.gmx.net [213.165.64.100]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with SMTP id p9FJ50RX012200 for ; Sat, 15 Oct 2011 21:05:01 +0200 Received: (qmail 15446 invoked by alias); 15 Oct 2011 19:04:55 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 15 Oct 2011 19:04:55 -0000 Received: from relay.uni-heidelberg.de (EHLO relay.uni-heidelberg.de) [129.206.100.212] by mx0.gmx.net (mx026) with SMTP; 15 Oct 2011 21:04:55 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id p9FJ2S50010442 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 15 Oct 2011 21:02:28 +0200 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id p9EM1SL0003147; Sat, 15 Oct 2011 21:02:27 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 1781312 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 15 Oct 2011 21:02:27 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id p9FJ2ReS029573 for ; Sat, 15 Oct 2011 21:02:27 +0200 Received: from anchor-post-1.mail.demon.net (anchor-post-1.mail.demon.net [195.173.77.132]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id p9FJ2Hh9010416 for ; Sat, 15 Oct 2011 21:02:21 +0200 Received: from morningstar2.demon.co.uk ([80.176.134.7] helo=palladium.local) by anchor-post-1.mail.demon.net with esmtp (Exim 4.69) id 1RF9Uv-0002Kg-hg for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 15 Oct 2011 19:02:17 +0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1 MIME-Version: 1.0 References: <4E95A9C2.6020607@residenset.net> <4E95C086.7060806@morningstar2.co.uk> <4E96F7BF.9070700@residenset.net> <4E97EA81.6040504@morningstar2.co.uk> X-Enigmail-Version: 1.3.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <4E99D8B9.6080302@morningstar2.co.uk> Date: Sat, 15 Oct 2011 20:02:17 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: Church booleans To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Sender is in whitelist: joseph.wright@MORNINGSTAR2.CO.UK); Detail=5D7Q89H36p4L00VTXC6D4q0N+AH0PUCnBi0P5cROEGjO+pG7NAH/K+tf9SrVFtpLrKONl 2T9EL4W4U4jgzLbnCcGpk1z/zwmKT/K1fv3lD0=V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de Status: R X-Status: X-Keywords: X-UID: 6945 On 14/10/2011 22:42, Bruno Le Floch wrote: > - Change in the implementation to use Church-like booleans (not quite > \use_i:nn and \use_ii:nn): this brings in a performance improvement, > and also allows _if we want_ to have predicates for non-expandable > tests. Since there is no change in the interface, this can be changed > at any time. Provided it really does not change the interface in any way, there should no problem with altering the internals. > - Change in the priority of the various operators, to be ! > && > ||. > I believe that this should be changed eventually. It is tricky to get > right, but I can do that in a couple of week if the general feeling is > that we should change. We probably should consider this, as it does seem that this is a general feature of boolean logic. > - Change in the interface to use "not", "and" and "or" instead of "!", > "&&" and "||". I do prefer how boolean expressions look like with "&&" > and "||", but "&" makes our lifes a little bit awkward in alignments > (can be made fully robust, with a performance cost ~10-30%?). I'm intrigued by the 'fully robust' statement here: I've had some problems with \halign's, where if you end up with nested Appendix D tricks then all sorts of trouble starts. >> etoolbox goes with the simple "and", "not" and "or", and to me this >> seems like a sensible approach. If that is done, there would need to be >> transitional support for the current syntax, of course. > > We can support both syntaxes (temporarily or forever) with no > performance cost compared to just "&&" and "||". Dropping "&&" and > "||" in favor of "and " and "or" improves performance a little. > > Switching to "and", "or", "not" raises the question of whether to add > "xor", which is currently missing. That makes priority handling > tougher, so I'm only half keen on that. I don't see why you'd add "and"/"or"/"not" unless the aim was to remove "&&"/"||"/"!". There are places where alternative syntaxes are helpful, but I don't see that here. -- Joseph Wright