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 q8D7oNxq022013 for ; Thu, 13 Sep 2012 09:50:25 +0200 Received: (qmail 9432 invoked by alias); 13 Sep 2012 07:50:18 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 13 Sep 2012 07:50:18 -0000 Received: from relay.uni-heidelberg.de (EHLO relay.uni-heidelberg.de) [129.206.100.212] by mx0.gmx.net (mx002) with SMTP; 13 Sep 2012 09:50:18 +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 q8D7mX3J024459 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 13 Sep 2012 09:48:33 +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.1) with ESMTP id q8D7kiXd007582; Thu, 13 Sep 2012 09:48:33 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 3075074 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 13 Sep 2012 09:29:57 +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.1) with ESMTP id q8D7TvGv020452 for ; Thu, 13 Sep 2012 09:29:57 +0200 Received: from smtp.demon.co.uk (mdfmta004.mxout.tbr.inty.net [91.221.168.45]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id q8D7TlDn029015 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 13 Sep 2012 09:29:49 +0200 Received: from mdfmta004.tbr.inty.net (unknown [127.0.0.1]) by mdfmta004.tbr.inty.net (Postfix) with ESMTP id 9193DA0C081; Thu, 13 Sep 2012 08:29:46 +0100 (BST) Received: from mdfmta004.tbr.inty.net (unknown [127.0.0.1]) by mdfmta004.tbr.inty.net (Postfix) with ESMTP id 701BBA0C080; Thu, 13 Sep 2012 08:29:46 +0100 (BST) Received: from [139.222.114.133] (unknown [139.222.114.133]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mdfmta004.tbr.inty.net (Postfix) with ESMTP; Thu, 13 Sep 2012 08:29:46 +0100 (BST) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 MIME-Version: 1.0 References: <505141C9.60900@gmail.com> <50518513.30208@latex-project.org> X-Enigmail-Version: 1.4.4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-MDF-HostID: 9 Message-ID: <50518B69.7050005@morningstar2.co.uk> Date: Thu, 13 Sep 2012 08:29:45 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: New auxiliary functions guidelines To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: <50518513.30208@latex-project.org> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Sender is in whitelist: joseph.wright@MORNINGSTAR2.CO.UK); Detail=5D7Q89H36p4L00VTXC6D4q0N+AH0PUCnBi0P5cROEGjO+pG7NAH/K+tf9SrVFtpLrKONl 2T9EL4W4U4jgzLbnCcGpk1z/zwmKT/K1fv3lD0=V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de Status: R X-Status: X-Keywords: X-UID: 7152 On 13/09/2012 08:02, Frank Mittelbach wrote: > Am 13.09.2012 04:15, schrieb Joel C. Salomon: >> The use of `\@@_function:nn` implies that the initial function is itself >> an internal one. Sometime that will be the case, of course, but I think >> `\pkg_function:nn` would make a better primary. >> >> (Thinking aloud: Unless the intention is that `\pkg_function:nn` is the >> primary and `\@@_function:nn` ==> `\__pkg_function:nn` is the first >> auxiliary? but then you'd have said that.) > > I think you are right and the intention is not yet properly described. > My nomenclature would be something like this: > > \pkg_function:... > > is an interface function of the package to the outside world, eg what > other packages should use and should be able to rely on. > > \__pkg_function:... aka \@@_function:... for short > > is an "internal" package function that is used within the package but > shouldn't be used outside and its implementation and semantics are not > to be relied on by anybody > > Now sometimes one has a need for helper functions that are only be used > once to implement an internal function, typically when doing some > complicated token parsing. Those functions are the one we call > "auxiliary" functions and if they are needed they get the string "_aux" > in the name. > > So > > \@@_function:... is the internal one > \@@_function_aux:... is used to implement just the \@@_function:... > > if more than one "auxiliary is needed for implementing a single function > then either they are distinguished by the arg signature or by "_auxi" > "_auxii" etc. > > > point is that the "_aux" are intended to help just with a *single* > command implementation. If it turns out that one reuses an "_aux" > function several times, it would be better to give it a separate > descriptive name and make it an internal function and not an auxiliary. Do you want to revise this or shall I? > perhaps I should also mention that (though not that likely) you may also > have the situation that an interface function needs an auxiliary, eg > > \pkg_function:... > \@@_function_aux:... Unlikely, as this should be covered by \pkg_function:... \__pkg_function_aux:... -- Joseph Wright