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 o1D1NM7M031859 for ; Sat, 13 Feb 2010 02:23:23 +0100 Received: (qmail 2121 invoked by alias); 13 Feb 2010 01:23:17 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 13 Feb 2010 01:23:16 -0000 Received: from relay2.uni-heidelberg.de (EHLO relay2.uni-heidelberg.de) [129.206.210.211] by mx0.gmx.net (mx007) with SMTP; 13 Feb 2010 02:23:16 +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 o1D1Ktku017244 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 13 Feb 2010 02:20:56 +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 o1CN12cv030489; Sat, 13 Feb 2010 02:20:54 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 389001 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 13 Feb 2010 02:20:54 +0100 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id o1D1KsoV007835 for ; Sat, 13 Feb 2010 02:20:54 +0100 Received: from mail-yw0-f178.google.com (mail-yw0-f178.google.com [209.85.211.178]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id o1D1KnOK017169 for ; Sat, 13 Feb 2010 02:20:53 +0100 Received: by ywh8 with SMTP id 8so814978ywh.3 for ; Fri, 12 Feb 2010 17:20:49 -0800 (PST) Received: by 10.151.21.3 with SMTP id y3mr376659ybi.107.1266024049589; Fri, 12 Feb 2010 17:20:49 -0800 (PST) Received: from ?10.0.1.106? (219-90-247-199.ip.adam.com.au [219.90.247.199]) by mx.google.com with ESMTPS id 4sm1609579ywg.43.2010.02.12.17.20.46 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 12 Feb 2010 17:20:48 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Apple Message framework v1077) References: <4b6c8efc$0$6573$9b4e6d93@newsspool3.arcor-online.net> <09bdfa24-c77c-4f37-8c89-809befb28934@u41g2000yqe.googlegroups.com> <4b6cc60a$0$6581$9b4e6d93@newsspool3.arcor-online.net> <227E5CB1-DBE8-4956-94C6-9B9FD1B15A07@yahoo.de> <19317.56561.17406.210089@morse.mittelbach-online.de> <702AECD6-E31C-47EE-8921-AB9EACC52AC7@yahoo.de> X-Mailer: Apple Mail (2.1077) X-Spam-Whitelist: Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id o1D1KsoV007836 Message-ID: <44638509-90DA-40C0-8A04-0E04CD12C208@gmail.com> Date: Sat, 13 Feb 2010 11:50:41 +1030 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Will Robertson Subject: Re: Newbie Question on LaTeX 3 Programming - \exp_arg:x To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: <702AECD6-E31C-47EE-8921-AB9EACC52AC7@yahoo.de> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=5D7Q89H36p77e5KAPs1l6v/Sb97LojnDtMgfETrECMLUO9erHzOJe6KyumPEzQo/v49H/ 6WH16A3hVxdb50dQBMe/GhyW+KflE2xKxwMOEKvHDWk7UqJoh2LvyLXsywjCkfM1ILLlYNfmOEMt /DqUA==V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de X-Scanned-By: MIMEDefang 2.63 on 85.214.41.38 Status: R X-Status: X-Keywords: X-UID: 6265 On 13/02/2010, at 11:37 AM, Philipp Stephani wrote: > expl3 itself uses \exp_arg:x in disguise, e.g. in l3tl.dtx, l. 1504: > > \cs_set_nopar:Npn \tl_tmp:w #1 { > \tl_set:Nx \l_tmpa_tl { > \exp_not:N \prg_new_conditional:Npnn \exp_not:c {tl_if_eq:#1} > ####1 ####2 {p,TF,T,F} { > \exp_not:N \tex_ifnum:D > \exp_not:c {tl_compare:#1} {####1}{####2} > \exp_not:n{ =\c_zero \prg_return_true: \else: \prg_return_false: \fi: } > } > } > \l_tmpa_tl > } > > Codes like that are very common. I also think that this is not too elegant, but in many cases there is no other way. \edef lets you specify completely arbitrary combinations of expansions, something that is impossible otherwise. It doesn't matter that it is not expandable because the result must be executed anyway. I've proposed adding this version of \exp_arg:x to expl3 relatively recently. (It's the first on the list of l3candidates.dtx.) Your feedback helps us to decide whether it should be included. Any thoughts from others? -- Will