Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Fri, 28 Nov 2008 09:27:53 +0100 Received: by mail.proteosys.com (8.13.8/8.13.8) with ESMTP id mAS8RoTO024833 for ; Fri, 28 Nov 2008 09:27:51 +0100 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id mAS8Kebn030262 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 28 Nov 2008 09:20:40 +0100 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 mARN4oWU025522; Fri, 28 Nov 2008 09:20:21 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 190594 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 28 Nov 2008 09:20:20 +0100 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 mAS8KKlF014487 for ; Fri, 28 Nov 2008 09:20:20 +0100 Received: from mailgate5.uea.ac.uk (mailgate5.uea.ac.uk [139.222.130.185]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id mAS8K5OW020680 for ; Fri, 28 Nov 2008 09:20:08 +0100 Received: from [139.222.128.187] (helo=ueams04.uea.ac.uk) by mailgate5.uea.ac.uk with esmtp (Exim 4.50) id 1L5ya5-0005aG-3q for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 28 Nov 2008 08:20:05 +0000 Received: from [139.222.202.98] by ueams04.uea.ac.uk with esmtp (Exim 4.69) (envelope-from ) id 1L5ya5-0000oY-24 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 28 Nov 2008 08:20:05 +0000 User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 References: <27990a880811191758x2a29ecb4m33d2dcead1f32093@mail.gmail.com> <859ec5630811200508x17ef357dvc7cf352f5bc1031f@mail.gmail.com> <492E623B.1090300@morningstar2.co.uk> <492F05D6.3060103@morningstar2.co.uk> <1F3BAD8F-E4CF-4110-8D8E-50B31B47FB22@gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <492FA9B7.5040802@morningstar2.co.uk> Date: Fri, 28 Nov 2008 08:20:07 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: \exp_after:NN To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <1F3BAD8F-E4CF-4110-8D8E-50B31B47FB22@gmail.com> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -2.599 () BAYES_00 X-Scanned-By: MIMEDefang 2.64 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 28 Nov 2008 08:27:53.0898 (UTC) FILETIME=[357790A0:01C95133] Status: R X-Status: X-Keywords: X-UID: 5482 Hello Will, > Thanks for the comprehensive list! > Your suggestions are good in that they don't involve *too* much change > from what we're used to. That was largely because I'm broadly happy with the situation "as is". I was thinking about the small-ish number of awkward cases, and trying to make them clearer. > In the following table, "W" is a tentative suggestion following from some > comments by Frank last year; "J" is Joseph's suggestion, and "C" is what > we've got now. I did my best to stick with the current thinking (letters are based on an explanation of what they do). You could perhaps include "z" in my list as a complement to "W", with z representing other expansion possibilities and W being more strictly for delimited arguments. In that way, a z argument with always represent one thing, whereas W can mean any arbitrary list of stuff. > t T Braced tokens Braced True branch > f F Braced tokens Braced False branch > > What would happen if we dropped the true/false flags from the arg spec into > the function names? E.g., > \tlist_if_in_TF:nn { }{ } { }{ } Speaking from my own experience, I quite like the :T, :F, :TF idea. The problem with the above is that \tlist_if_in_TF:nn needs four arguments, so it should really be \tlist_if_in_TF:nnnn. I think it is then much harder to see what is going on. So if it were down to me I'd keep the T/F idea, although I'd aim for lower case as these can take braced arguments. (Speaking of which, I might revise my suggestion again, to stick with :w in lower case for the same reason: braces are possible for :w arguments.) > (Although I suppose there's no reason we couldn't currently write > \bool_double_if:NN_TT_TF_FT_FF ) Why not just \bool_if:NN_TT_TF_FT_FF? A slight abuse of the system, but this is one of those edge cases where flexibility is needed. > While we might be able to create a better system than we've got now, is > it worth it? Once again, if it were down to me I'd not make more changes than are really needed. In that sense, this entire discussion could be somewhat redundant: things already work reasonably well. I'd still argue that \exp_after:NN is not representative of what it does, so using the current specifiers would prefer \exp_args:NE. That change at least should be relatively easy. If other changes are made, I'd suggest that there will be something of a "knock on" effect, and so it is only worth doing if the entire result is more logical (e.g. just changing f => s is not worth it). Of course, I think my suggestion is not bad :-) -- Joseph Wright