Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with ESMTP id s6C3G7MF009952 for ; Sat, 12 Jul 2014 05:16:08 +0200 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx006) with ESMTPS (Nemesis) id 0LpOrd-1WcGSi0QoH-00fCvd for ; Sat, 12 Jul 2014 05:16:01 +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 s6C3DNCj001034 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 12 Jul 2014 05:13:23 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id s6BM15Rg022487; Sat, 12 Jul 2014 05:13:23 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 11125437 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 12 Jul 2014 05:13:23 +0200 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id s6C3DMZM009258 for ; Sat, 12 Jul 2014 05:13:22 +0200 Received: from mail-ie0-f169.google.com (mail-ie0-f169.google.com [209.85.223.169]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id s6C3D2RO009872 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL) for ; Sat, 12 Jul 2014 05:13:06 +0200 Received: by mail-ie0-f169.google.com with SMTP id tp5so1609820ieb.28 for ; Fri, 11 Jul 2014 20:13:02 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.50.137.71 with SMTP id qg7mr9270165igb.24.1405134782353; Fri, 11 Jul 2014 20:13:02 -0700 (PDT) Received: by 10.50.14.130 with HTTP; Fri, 11 Jul 2014 20:13:02 -0700 (PDT) References: <539432A6.7030205@clear.net.nz> <5395A7A3.7040106@residenset.net> <5395AA02.8040704@morningstar2.co.uk> <53BF8686.2060201@morningstar2.co.uk> <53C0131F.2030404@morningstar2.co.uk> <53C09731.6080004@clear.net.nz> Content-Type: text/plain; charset=UTF-8 Message-ID: Date: Fri, 11 Jul 2014 23:13:02 -0400 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Bruno Le Floch Subject: Re: Juxtaposition in l3fp To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <53C09731.6080004@clear.net.nz> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-GMX-Antivirus: 0 (no virus found) X-UI-Filterresults: notjunk:1;V01:K0:gpU25o8FGFM=:aIKMbpSuv7hsF6QT9U24fbzlJd PaWdPmX9vk4tvIhsrJI6nq5AnmY5cOONVWMMC8Cp6lUTaz7rIkeT0yYom4KCvvP6JT+zj5oDK fzgRPR+Tssfct+GhSMSyqH0/1L6FI0isdx38Y8Cjml+Kdz1l16UpAIKmByQ8/QPetkshuK4j8 ujjOGk3KJKgbGm4v8Eb+diG9es3CiZ6qpvL60GNq0h543FAF2aWdwuaz7sjmo800DcXmbSLQk xL6sQ+zwyzMs+1o0O9CAphS91ayzTs0Bfl2RQ8SiL+THoUo7HhndJjbSQgMjcIgxT25Mvn9no 3j+KG5Dr2MLLoB6vJl10KhpH2WZ018D/oDOYyHsDX3GZnsQs6QJmgks2Bndtv92LAEipXgHny owxt+mvtgJXQW06xuqsthv01pCrDgQT7Xfcv9W7gBdkyeb2yj9dzGfdnYrM3BMu+NpJFozEz5 Dm8dC0RGIAU4Wu4JlFZRIP3DJ+yvAzYDFHzVVITaYg9EWKdwbHLfJB2Vcj0+bEvWqkgxeo4mZ +ckH0fUxrp8SSCmLYw0P39by1/jo6tYrkCBH7RAxoBcuvLMo3TZSPsoww1ChcsnhmnUbbqkp5 5axV2htWxOD4hbZa6ulY8aX4NyH8ITAiPfRTtsEtUxjYTWKqw//D3x+9XztkV7yfvyiCo8LR7 47Irn/6Y9oqfOD6tlNaxFIiYTvZTEjZMIR47VDKtKELg7BmOBYUgnfYmHMmq9A8bj5xU945TB yI1/qBMrsltp9ReiPbmk19YaPrOIWvnErZQuUUYdsF8PcDHquLYsfdLcA28aiHrl6FOTbO9Hq o4Po6Ea1Hu/sjjUySH9ToT0r40JsdcxDRzyjzkXlBPfiX+Sj9YxO6JuuBtkgslsIiVxxM8jpR 8ueT4JUz4Drn7RCiRuyJJcv0jRlUjDiLUutkyHu+lA/sO00lVRJbeq5k8/9aqf1ok9D9kB1ta i+wMiKBtvjpmJKS2cQe0/YTf4PLQ9wPRLSc8HKMv00NuAK8e640G7DrY4oISYVHy2+RVQQY8o MoZTLQtV6IPD5w4M4nLBWeU6wld/gaMU0l4WF1amJFYCi4vxvCW69aMB8Vb6vLJWtESfTE9kv 7/5XrahKTsdnNoqWNNRG7z1crNb5BHo8UR5jfAUM6CgK4VZZn6zu+D3hBVnO0K6dx4ROaFx+D rkRXGAR0YmWFLPoWFc4BMZX2cn6h9A6QTrwUjievQADQYgyL7HTm53psDb3XC94aBq4OpTf7S t4vbpMLRr4TNoYHF69n9SlH68g5GFd0rwO40QELfWW0jAeKxS6DcLRBEWtrxcZaR/QlOzGTU+ L4T7gUpR0VOQ4x5Cyv+XK/EidP7/9FDtgwHoIkky6mtF4w0FRasObluRcQ7XhpQyR2a68sDIe zGMclrqSFp256eKVkDYyW/9xfWMd4fKcSKEExSKwtsiNIruqt4ELxdPsDpOD+2ev1cxecvGTG yFfoZUM3BsDFn6O64irrI0h8ZP+wDer4VDGHjNuJqAlBMgDuLNVahhTviApI68Xh5iCQXLMQ= = X-UI-Loop:V01:20SuZYHrpzI=:50t8vjyvFyFySPwDSzKxzbXDOPoj6BsIAngj+OUVEqI= Status: R X-Status: X-Keywords: X-UID: 7548 On 7/11/14, aparsloe wrote: > On 12/07/2014 4:38 a.m., Joseph Wright wrote: >> On 11/07/2014 17:23, Bruno Le Floch wrote: >>> On 7/11/14, Joseph Wright wrote: >>>> On 11/07/2014 00:20, Bruno Le Floch wrote: >>>>> should change the precedence of juxtaposition-as-multiplication from >>>>> what it currently is (the tightest) to being the same as >>>>> multiplication. In other words, juxtaposition would behave exactly >>>>> identically to adding an asterisk. >>>> To be clear, continue to allow >>>> >>>> 2x + 1 >>>> 2pt + 3cm >>>> >>>> but with >>>> >>>> 2x^2 + 2 = 2*(x^2) + 2 >>>> >>>> so for your example 25pc^2 requiring braces (0.25pc)^2? >>>> >>>>> Would that make sense? Am I missing something crucial (probably... I >>>>> didn't realize when allowing juxtaposition what a mess I was >>>>> creating)? >>>> Seems OK to me (if I've understood correctly). >>> Yes you did. Cf my other email: how should the change happen? >> As I said there, with a 'breaking' change (which sometimes simply can't >> be avoided) all we can do is warn that there is one. Write the code and >> test properly and I'll worry about the release announcement :-) >> -- >> Joseph Wright > I'm swimming away out of my depth here, but I wonder if you need to > break anything? > > My original email on juxtaposition was prompted when I "stubbed my toe" > on a case where the rigorous application of juxtaposition and its > precedence level led to a very unintuitive outcome. Once I had > re-established equilibrium, I thought to myself: OK, that is how l3fp > does things. Juxtaposition at the highest precedence level is applied > rigorously (with perhaps one exception). I can adjust my code. The user > doesn't need to know about what is happening in l3fp. It is after all > part of l3kernel, part of the engine. Can you expand on that one exception? I don't see what it is. > I concluded that email by wondering if it might be possible to graft a > more intuitive front end onto l3fp -- call it l3calc, say. By way of > analogy, there is l3keys in l3kernel and l3keys2e in l3packages. Have > you considered such an option? l3calc would spend most of its time > putting parentheses around terms and asterisks between them. But nothing > would be broken, as a change in precedence level in l3fp will entail. > The "hairy-chested" could continue to use l3fp; less macho types might > prefer the more intuitive interface of l3calc. > > Andrew I disagree. Implementing a parser with all the properties we need (in particular, expandability) is difficult and requires a lot of code, which would have to be essentially duplicated from l3fp into a hypothetical l3calc for a very minimal advantage if it is just correcting the precedence of juxtaposition. Is there any other change that such an l3calc should make (basically, what else should we change in l3fp)? Making a breaking change to l3fp is not great, but hopefully this particular aspect has not been used too much (I'd be more wary of forbidding juxtaposition altogether), and won't break any document. Regards, Bruno