Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Wed, 10 Sep 2008 14:42:17 +0200 Received: by mail.proteosys.com (8.13.8/8.13.8) with ESMTP id m8ACgBkc006277 for ; Wed, 10 Sep 2008 14:42:12 +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 m8ACZsOp011651 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 10 Sep 2008 14:35:54 +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 m89M1PDO032197; Wed, 10 Sep 2008 14:35:51 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 31648 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Wed, 10 Sep 2008 14:35:51 +0200 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 m8ACZpMB005825 for ; Wed, 10 Sep 2008 14:35:51 +0200 Received: from spmler3.mail.eds.com (spmler3.mail.eds.com [194.128.225.186]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id m8ACZVDV027633 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Wed, 10 Sep 2008 14:35:35 +0200 Received: from spmlir2.mail.eds.com (spmlir2-2.mail.eds.com [205.191.69.204]) by spmler3.mail.eds.com (8.14.2/8.13.8) with ESMTP id m8ACZSYw026782 for ; Wed, 10 Sep 2008 13:35:28 +0100 Received: from spmlir2.mail.eds.com (localhost.localdomain [127.0.0.1]) by spmlir2.mail.eds.com (8.13.8/8.12.10) with ESMTP id m8ACZIp5026943 for ; Wed, 10 Sep 2008 13:35:18 +0100 Received: from DERUM100.emea.corp.eds.com ([145.16.186.33]) by spmlir2.mail.eds.com (8.13.8/8.12.10) with ESMTP id m8ACZIjs026938 for ; Wed, 10 Sep 2008 13:35:18 +0100 X-EDSINT-Source-Ip: 145.16.186.33 Received: from defrm202.emea.corp.eds.com ([145.16.186.18]) by DERUM100.emea.corp.eds.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 10 Sep 2008 14:35:18 +0200 X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: expl3 variant expansion forms thread-index: AckTNhZbNUp7JaG3QYeZiQTpCU6EfAAA7ZCQ References: <48C3DAD1.6030004@morningstar2.co.uk> <4B6A6CEE-A06F-4EAC-B618-3B637A5902E4@gmail.com> <18630.50165.621679.420173@morse.mittelbach-online.de> <20B59161-A27F-4FE5-98E5-0FB3F051073B@gmail.com> <18631.42022.160484.847483@morse.mittelbach-online.de> A<20080910110725.GA3944@irwin.vpn.uni-freiburg.de> X-OriginalArrivalTime: 10 Sep 2008 12:35:18.0510 (UTC) FILETIME=[AEE958E0:01C91341] Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id m8ACZpMB005826 Message-ID: <8D5403E89293A448A409DDDD1531CE1801951EB5@defrm202.emea.corp.eds.com> Date: Wed, 10 Sep 2008 14:35:17 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: "Mittelbach, Frank" Subject: AW: expl3 variant expansion forms To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: A<20080910110725.GA3944@irwin.vpn.uni-freiburg.de> 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 Status: R X-Status: X-Keywords: X-UID: 5271 as always you keep people straight Heiko ... ok so I oversimplified and as far as I'm concerned we are only doing idle talk anyway .-) ... but ... concerning the approach i outlined as quick and dirty, that one isn't really defining macros on the fly, but rather making \foo:noo looking like a macro (as it is now) while in practice it is executing \foo using noo to decied out to handle upcoming arguments. as far as i can see that should work in an expandable context like \write since the l3expan stuff is expandable --------------- the other suggestion I made was to do "on the fly" in the sense that during definition time time only. That is something I still think you can do fairly robust but yes you have to restrict on what is possible and what is constructed or identified, e.g., only explicit comman names would be recognized, \foo:noo but not \csname foo:#1 \endcsname or worse ... once the definition has be parsed all used variants within its body are defined as well, question of local/global doesn't arrise as the variants should all be globally defined frank -----Ursprüngliche Nachricht----- Von: Mailing list for the LaTeX3 project [mailto:LATEX-L@LISTSERV.UNI-HEIDELBERG.DE] Im Auftrag von Heiko Oberdiek Gesendet: Mittwoch, 10. September 2008 13:07 An: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE Betreff: Re: expl3 variant expansion forms Hello, On Wed, Sep 10, 2008 at 12:40:38PM +0200, Frank Mittelbach wrote: > > When I first read about expl3 years ago, indeed I was naively > > disappointed that the variants weren't constructed "on the fly". But > > that's obviously impossible. > > obviously impossible is perhaps too strong a word, How do you want to define macros on the fly, being in expandable contexts (inside \edef, \write, ...)? Or is the use of these macros forbidden inside expandable contexts? Next question, how does the "on the fly" process (if such a thing might exist) decide to define a macro globally or locally? Local stuff making global isn't a good idea generally, thus local definitions remain. But this can be ineffective, if the yet undefined variant is only called inside a separate group. Yours sincerely Heiko