Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id wB87TOUs016504 for ; Sat, 8 Dec 2018 08:29:25 +0100 Received: from relay2.uni-heidelberg.de ([129.206.119.212]) by mx-ha.gmx.net (mxgmx016 [212.227.15.9]) with ESMTPS (Nemesis) id 1MaJnD-1h12Xj40hh-00WQjZ for ; Sat, 08 Dec 2018 08:29:19 +0100 Received: from listserv.uni-heidelberg.de ([129.206.100.94]) by relay2.uni-heidelberg.de with ESMTP; 08 Dec 2018 08:29:20 +0100 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 93BD7127287; Sat, 8 Dec 2018 08:29:16 +0100 (CET) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 31693600 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 8 Dec 2018 08:29:16 +0100 Delivered-To: LATEX-L@listserv.uni-heidelberg.de Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.119.212]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 7802B125E4B for ; Sat, 8 Dec 2018 08:29:16 +0100 (CET) X-IronPort-MID: 3270203 X-IronPort-RemoteIP: 209.85.221.46 X-IronPort-SenderGroup: UNKNOWNLIST X-IronPort-MailFlowPolicy: $ACCEPTED X-IronPort-Reputation: 2.8 IronPort-PHdr: =?us-ascii?q?9a23=3AXSfrXBTzF+MvKU+s1jEQXx3T99psv++ubCcI9p?= =?us-ascii?q?oqja5Pea2//pPkeXbS/uhpkESQDdWJ8f9AgvuM9b3mWCkA7JeNvXQIfYZDER?= =?us-ascii?q?MI2o0NhwJ1JsmDBAXgKeLyKTQgFZFAU0Ro53H9LlJUF8biT1jVuHuz6zEJBh?= =?us-ascii?q?zlb0x+IaLoGd2alNy5gsa1/ZCbeABUnHy4aLJ2Ig+xqFDTsdIbmYskNbwwxR?= =?us-ascii?q?vVin5PYeJXw2xzOVuJxVD34YGt/80r6Dxe7tQm8cMISqDmZ+I4QLhfWSwhKH?= =?us-ascii?q?ww7db3uAPrSAKO4j4DSDxTnEYWRQfC6x7+U9H6tS6j7LhH1SKXPNP7QfUPYR?= =?us-ascii?q?r5s/05bhjuhW9HLTM9+XCNzNF2jedbrROtqhh1zpTbJo2YZrJ4eevGcNUWSH?= =?us-ascii?q?AkPI4ZXjFdAo66c4oEDvYQdedeoY7nolISrBy4TQCyDeLrwzVMizf4x6o/m+?= =?us-ascii?q?gmFAjH2kQnEbds+DzWq874LKdUTvq0w6nU5TDEdfVX3zjm9IHSKFYqpreRXv?= =?us-ascii?q?M4cMbcz1UuCxKQlk+Z+umHd3ue0uUAtXTe7vI1D7r+zT567Vsr+37zmJRkkI?= =?us-ascii?q?TCi4MLx0qR7yh9yZdvY8C+SQt7bN+oHZ9aujuVcYd7EaZACyllvjg3zroetN?= =?us-ascii?q?u1Zi8Pnd4lwAXSc/zBbJKJ7RL/fOOWOzF5gn1+ZLul3VC59g69yaevM6v8mE?= =?us-ascii?q?YPtSdDntTW4zoP0Afe8sjBVeF88Ue98TOIzQbS7O5fPUkuz+zQLNg8wfRj8/?= =?us-ascii?q?hb+VSGFSjwlkLsiaaQfUhx4emk5dPsZbD+r4OdPYt501usCKkll82hDOh9CT?= =?us-ascii?q?AgBDTEq8K70rCrvVf0RLxb1LsrlKicsJ3bKckfrKOjDElZ39Rr7RH3FDqg3N?= =?us-ascii?q?kC+BtPZFtYZBKKiZToMFDSMbj5C/m4mVGljDZswbjPILTgBpzHKnWLnq3meP?= =?us-ascii?q?5x7EtVyQx7yt46hdocCLYaLerzHFDrtdPYEjc8NBaywuDoE8l0zNlYUmXJH6?= =?us-ascii?q?zYeKLevFmU5/4+duyFZYsbojH4eJ1Hr7bliX40n0NYfLH8h8NGLiDlWK48eg?= =?us-ascii?q?PFPymkmNoKHGYUsxBrVuHugUzYFyNVZjOyUqMw6zUxBZipS4vOFeXPyPSM2j?= =?us-ascii?q?m2GppOayVIEFeJRD3qcJ6JQ/dKdziTLc99ujkDT76gTYA6yRi07knxzPx6La?= =?us-ascii?q?CHn09Q/YKmz9Vz6+DJwFsw8id5F8TbzHuMQGFotmYPXTk32q9kvUVnkBGI1u?= =?us-ascii?q?5lgLYLcL4br+MMWQA8O5nGyuV8AN2nQQPNcOCCT1O+S8mnCzU8F4hj+dIFbk?= =?us-ascii?q?djFtnntSjthHb1UZkSkbHDRIY59qvNhT7sIcc4y3vH2KQlhVQ8TY1DOD/ugK?= =?us-ascii?q?k37AXVC4PT9ifR36+3aaQR2jLM/2af3CKPuk9fSgt5TaTCWzgWeELXqd3z4k?= =?us-ascii?q?6KQaWpDPwrNQ5IyMjKLaUvCJWhlVJdWPLqI8jTeUq0kma0QAmSn/aCMNSsdG?= =?us-ascii?q?Ia0yHQTkMDlkFb/HqLMxQ/Gjb0o2/aC28LdxqnaEft/O9i7XKjGxVsnkfaMg?= =?us-ascii?q?s7jePzpkBGzeaRQP4SwL8e7T0srzxlRhCg2dOTC9eBqwdldqhGbpUx7QQity?= =?us-ascii?q?qRugpjM5inN60niEQZdlE9vUT12g13TJpakMcqsFsvyxB0KKSXy09IbWne1p?= =?us-ascii?q?e2J76deQyQtFi/LrXb3F3TyoPc4qAU9PExsEnupimsH0smtmp9ipxbjyXa6Z?= =?us-ascii?q?LNAw4fF5n2Vwxkknoy76GfaS476YTO0HRqOqThqT7O1eUiA+49wwqhddNSaf?= =?us-ascii?q?LWJErJC8QfQvOWBqkvklmtYAgDOboKpqszJcWncfSdxKexZqBrm3S7jjYfud?= =?us-ascii?q?wv4ge37yN5D9Xw8dMd2fjChlmCUC36jVGuqdz+g9oCbjZUA2ntkXG5Vr4UXb?= =?us-ascii?q?V7eMMwMUnrI8CzwY8j1ZvkWnod60T6Ql1ahommfh2da1G71gpVhxwa?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BcCgBPcQtcgC7dVdFkHQEBBQEHBQG?= =?us-ascii?q?BZQKBf2xwBDKDepQqgWAIJZdSgSMDUwwBhGwCgxsaBgY3AwwBAwEBAgEBAQE?= =?us-ascii?q?UAQEJDQkIJyUMhT0BAQQBASEPAQUIAQE4DwsYAgImAgI0AQUBHAUBDQgBAYM?= =?us-ascii?q?dggIDm2A8ih1wgS+CdgEBBYJDhGoICQEIeYsXgVc/gTgMgl+IBYJXoBdVBwK?= =?us-ascii?q?CIQSPIx6JZAsFh0eSRYZCAgQCBAUCBQ8hgU4BgWMzGjSDK4Ibg22KUz8zAYx?= =?us-ascii?q?NAQE?= X-IronPort-AV: E=Sophos;i="5.56,329,1539640800"; d="scan'208";a="3270203" X-MGA-submission: =?us-ascii?q?MDHjdQx3VqSmpQNPHUnmBzIecyRhRB3ytEBTqr?= =?us-ascii?q?WDBm6M+8SD+MfQOvZp+Nooh+CBxrDxA/qEIDpv3SJwYAHqU6oFF+/5aW?= =?us-ascii?q?ywWsUPxTr9Mkx7YBxP+lj3Meshb5Xxkh4ts3ChDwrX6tmLxMoMc9XdS1?= =?us-ascii?q?Z/ptbGeE8mGYIxLgmlNkvBkw=3D=3D?= Received: from mail-wr1-f46.google.com ([209.85.221.46]) by relay2.uni-heidelberg.de with ESMTP/TLS/AES128-GCM-SHA256; 08 Dec 2018 08:29:17 +0100 Received: by mail-wr1-f46.google.com with SMTP id t27so5748398wra.6 for ; Fri, 07 Dec 2018 23:29:16 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=QnXLlvPZo5o9YnBbK/41qtNfLI0ieNO5CCltytzrDZI=; b=ac3yn2ePaxVw7OIDcx352DnZcJh1es1le6Suby1M800Fs5YmXqLgKBLNON5FoGardk WkKc7MkhskcmRFVuz7hr0qRrg7f3aonxVl/2ISA2xRbSIqWkK0UC+lyjIewgXpa856cR swJUv9XVjMVPPPRI9lp+tMXHQI2kw8Q2+dxVOHdDy2pqQuKYVLM/GZAfmc5Bf3ZShOxh kQY+A8mTm3T+op+PgCm6kfvJOxV8OYZ21Dv0XYihvPwhweNixDOPAvHowIZ2jdmZU6X2 tcfDTnJ9LCeBJS1Yf4uARZwf7Q0CcetUJOaIU/DbLmBXCn045o/UzIkPueKLWc8QLD0z 2ngg== X-Gm-Message-State: AA+aEWbqpJcg1ez+mI73pHS6E+btswmduvhL3dGgwlO1lZ16PtK19M1j AyATbl+dssFmIAL4uePSrXka/lvZN04= X-Google-Smtp-Source: AFSGD/UgEzCglR6+AUc8aelJ3IymTSUP9qJlXscjmsMIf0zRKDHkYmMtcM3cBYqYWd8lWTLb89ZARA== X-Received: by 2002:a5d:45d0:: with SMTP id b16mr3730704wrs.86.1544254155388; Fri, 07 Dec 2018 23:29:15 -0800 (PST) Received: from [192.168.1.4] (90.203.7.51.dyn.plus.net. [51.7.203.90]) by smtp.gmail.com with ESMTPSA id t5sm4080427wmg.43.2018.12.07.23.29.14 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 07 Dec 2018 23:29:14 -0800 (PST) References: User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit Message-ID: <7e9c44a0-153f-5211-f4df-7423844bb194@morningstar2.co.uk> Date: Sat, 8 Dec 2018 07:29:13 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Re: Conditional Functions in xparse To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-Spam-Flag: NO X-UI-Filterresults: notjunk:1;V03:K0:t/2OG7pNQdI=:X/OMpOpbZdmUi2AKcSDEc53xsj GjJo9hOanRCtu5pork9jhQz0aoOi4z5Pv9rT2bsYT+4OKJPgQ5QFBXVUGCYdQWD8clUydjSfc q5oeprSv8KoH7xPe3ypneQiyvPweuCssg9fe0n28CjzK5QU2fQ4sElbqg5m1ECZwj9eYS1LPL LMuICXhziYPLhXbdqU8ccFiy+4wcEHueyQaliw542ojgw2e/yxrel7yaG/Ak7cvIF13y+735b PnMXCgXhMxe9Yhvm2qP4CK1akWcrWYBQD7OgjTv5/oq3rU1B+gssJUAdELlCpxXU5HmsQGfBr uI0JnCLN8dISIEZW1q8hWfUpvKDm+k9UIGNQ+qYcn4E64QhAgDp1YteoC6Wag3RDxmD9i3FmS 7L2sY32zDavekIvkCPnrZPcXBIJlQmbJeU8zKXrAiY+zlRzB+flasCWwQyWHc7guGPnwyW+w5 251d0ixNewKdljQQrhzVdLjTy6TcH9j1T2EgyVabMSBActDnN3iwvSMy26uWOIaaBoF/T5X4x HcpxyP+LjIf+3NNaCXvdkXBkR+GyQW446lWPej+nCSLs7R7+0lS8XStRFY8jnFA4y5BvCWUr1 pJFFG5pxJ6NbedThl5naYUl8XYGkoyTwDI2yuGBhnJKzA+T14v5rXnxTXtDH1yueeeFMI7VYy 73OEmb3AtLGdKDfekZACc5in2d+zvfe2NYIZ8s5BcQRvn/QvmivbLWdw+7KGrdPBGFIkZhG8v Fn21ZkSnxHCBFQe58Gj5xNltvaufqx8uj0MIo0ORGYRK8VvpT+49iT7V6/5hlbvGfCM2Piw7N cLnjA6z9qurv4TPn58wtesX4KkCeg6oCJ/cHEbdSAHlrTRdxW8UXtFby+fSbM+k+SQPSf6Jat YkSmsjiFZEOyRkcMmq3cGDTqK4c9ddtasmWglB+zlhvik7V/T5/G7bem0SiP8p94rpb97rpJA BhgdydUIDu//jx2ibeu+OQ7fkX/WFe+VDPxL3ge0okdbdI4U5bsmLCxo9veESyau5n3PDqYgV +XM279fdmY1ipJsSzLcZ/RKBB6aCY3zPojkqK4v9IENEMPt4qFQzEfAEtgJUjI6uIT0BM+1qf 4QkaCtyYwQIp6I1pd/7y1TNvgrNANWvBWGLXG+vvk6objvwr1nrR9JlUqAGt6lt/SeAE/5YK8 Rqtg38s+wPD9OCwuq2nmsBZBFQMEJB+DRFX5lIvJEXhansg75ndEfEC1ztgPFbXCBln6bV/Mx YGMK4I2ueQciyL3h3/R8W+S+n3Tx+iIsDIW0zhEOX3LEldZbTWCcKQUpuje6t3ucGqQhlS7RI jHKdlfjdj8rD8Znin7VfF1tI5y0oxHYH/KWA+AmU4yQK38flNeKHgZDmrdJ2h6OrWXhWPDybR vxu36do7n6uobjXQ217ko88Rc3Ar/rYkjK7aEVc5meYCU+hjCpRvT7KebPBdsyFh+1pOJtnx3 eM6h+D73TPAqQNhXdomrKTuJWqE8MfLX5+Bhzo5zoANKJMH7xE4uE1pTnWhH1xe1eth7XHsni JgQnBN3T3fbQH14eIGiytDTRDv4gAcHNZ4nUYIGz5WQlYAWvt14ni6sR2j3kbVchLCC8qy49/ gobhjSoXTVpsNgt/LBS0wvz38cCUJ929w7AnBBxQzqiX1RLDtjjYtehd0n5JILLxALrwqTmUJ pNEZQan8A8s+MNBwmrV/Rbi3Jc7TX6zmEyxM5jlHKPC4OuebllLkVk6/svBM/ump4iYAl3lpN jzn6tvvcHO6nRr0v36g71EbyJL/Kf268auSIlE8aVQpPEqH4S+6a8ausNeFbSmXLZs94u5L3I DbG8mLVCrM43C409dHCR0Pe4+IQ7v7mUxPs3hJnDIN21uGGynFaoA3D6GhLtD97PtmvBTdycq tKW6ULvAeXeNbA6ulhlZ8Tb6IFYbYALISyM917WBCvdEvf9D1VV690u612+Fm9yMGCA4LYg4b ZGGy5D9GHENo7imp1Pfi5P+S9lSWMcDOd55N4Drl4jflsLXrckO4OJmizYWxVJt60nLXrn6j7 B3isU/+nqZNj4IvYhXft0= X-UI-Loop:V01:8CRSrjU+e6I=:0mbX8nkLqc8HGY8UnmOEnI5bMJq3aHxVkpuUpdW41fA= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:qvRy2P7aIZQ=:TuEGrUgYoczwW+bIc41ZSo KPyMFGpeHcag98jHeTBzeCQWC5O+YnaatXeowEvDBDJ3w6wj7bMrqUSdbplxZ7XmVISfm2qne NtLcso7IX7wrDpOfwyoEt4iW5Ow547bhwmb71EfBtT+WpHFYRoDv4LuJwwW1BczOdob5dYObR T8oiPy2LgJeUK57yHWCGHXZVZ6O3ic88tApj4W0kHhjp59Wo+bNooAcQBXyFtjh5m9+n6uAIW wfwvkcbmGdxwcPeYKDq7Kzek1qlWugAoUJWhDdkRtAufbl/SiY1JIbY1E0Udx62q0J68H3XlL hEtzN1w/01E+flXqsHV82h5MbYsnEw17wKH45/1oTlzu+yHyYd7nEUIygzhHwZqGnlTw8S8Ln kJuX4jlzY69dvXx2jE98jgtJbIA2rInH+jJj3uzbp4MA3lasj+BgFkOJnfzos X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 Status: R X-Status: X-Keywords: X-UID: 8115 On 07/12/2018 19:17, Kelly Smith wrote: > Hello, > > I’ve seen mentioned here and there that the conditional functions in xparse > are now considered inappropriate. I wanted to get some clarification about > that. For example, if I have the command > > \NewDocumentCommand \foo { s m } > { > \IfBooleanTF { #1 } > { \mymodule_foo_star:n { #2 } } > { \mymodule_foo_nostar:n { #2 } } > } > > is it now preferrable to define it as > > \NewDocumentCommand \foo { s m } > { \mymodule_foo:nn { #1 } { #2 } } > > and have \mymodule_foo:nn do the conditional handling internally? > > Warmly, > Kelly > Hi Kelly, The idea of xparse remains the same: separating document syntax from code/implementation. Most of the time, document-level switches will link with different code-level interfaces. So I'd expect to see the \IfBooleanTF approach in most cases. Of course, where there is a code-level interface which takes a boolean, the second approach may be useful, but less common. Joseph