Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Fri, 5 Dec 2008 22:19:15 +0100 Received: by mail.proteosys.com (8.13.8/8.13.8) with ESMTP id mB5LJDHE005026 for ; Fri, 5 Dec 2008 22:19:14 +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 mB5LFQE9006605 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 5 Dec 2008 22:15:26 +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 mB5Eb0pV011235; Fri, 5 Dec 2008 22:15:25 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 180806 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 5 Dec 2008 22:15:25 +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 mB5LFPEk013591 for ; Fri, 5 Dec 2008 22:15:25 +0100 Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id mB5LFLWC006556 for ; Fri, 5 Dec 2008 22:15:24 +0100 Received: from morse.mittelbach-online.de (p54A83F72.dip.t-dialin.net [84.168.63.114]) by mrelayeu.kundenserver.de (node=mrelayeu6) with ESMTP (Nemesis) id 0ML29c-1L8i1B1RJI-0003Jf; Fri, 05 Dec 2008 22:15:21 +0100 Received: by morse.mittelbach-online.de (Postfix, from userid 501) id 865AC65766; Fri, 5 Dec 2008 22:15:18 +0100 (CET) MIME-Version: 1.0 Content-Type: text/plain; charset=unknown References: <4936B4E9.6010601@gmx.de> X-Mailer: VM 7.19 under Emacs 21.3.1 X-Provags-ID: V01U2FsdGVkX189nYloppHp4yegL0CWwPF1PSs3Q2hlDEbSlxV 51gJZ88000CbNnjGQShseVNQYifalcCo9+zoaE+H2GGBehC5H/ l0XXzrKWIOZNHfSZO//AZfLt02DH1pR X-Spam-Whitelist-Provider: Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by listserv.uni-heidelberg.de id mB5LFPEk013592 Message-ID: <18745.39398.505664.868573@morse.mittelbach-online.de> Date: Fri, 5 Dec 2008 22:15:18 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Frank Mittelbach Subject: Re: \if_meaning:NN To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -102.464 () BAYES_00,FORGED_RCVD_HELO,USER_IN_WHITELIST X-Scanned-By: MIMEDefang 2.64 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 05 Dec 2008 21:19:15.0950 (UTC) FILETIME=[209C80E0:01C9571F] Status: R X-Status: X-Keywords: X-UID: 5508 Will Robertson writes: > On 04/12/2008, at 3:03 AM, Arno Trautmann wrote: > > > why is \if:w, but \if_meaning:NN, \if_cs_meaning:NN and > > \if_token_eq:NN? > > The syntax is the same in all cases – I would have expected :w after > > all. > > \if:w corresponds to the primitive \if, whereas \if_meaning:NN and so > on are \ifx. From TeX by Topic: > > > After \if TEX will expand until two unexpandable tokens are > > obtained, so it is necessary to prefix expandable control sequences > > and active characters with \noexpand when testing them with \if. > > So while \if does take two tokens as input, it will also expands them > in a weird kind of way; actually, it might even be possible to name it > \if:ff ! But I'm not really for that idea :) and that is good as it would be wrong: \def\foo{ab} \if \foo \ERROR \else good \fi \if expands until it finds two tokens that are unexpandable, so in the above it never even sees \ERROR as it is happy with "a" and "b" not being equal so it is truely a \if:w wheras \ifx really picks up the next two tokens in the input stream for comparison, so :NN is correct here. What isn't 100% consistent is that all these lowlevel thingies are then go and fast parse for \else and/or \fi so in that sense they are all more like \if_meaning:NNw > > * * * > > Regarding the three different names for \ifx -- yes, that needs to be > cleaned up; but in the end there still may well be more than one name > for it. (Well, I'm not opposed to the idea, at least.) neither am I if it serves a purpose, here however it looks as if some cleanup would be useful frank