Return-Path: Delivered-To: rainer Received: from h2774747.stratoserver.net (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) by h2774747.stratoserver.net (Dovecot) with LMTP id qv08G7e4D15MYwAA4+3H6A for ; Fri, 03 Jan 2020 22:57:11 +0100 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id 003LvAWk025418 for ; Fri, 3 Jan 2020 22:57:11 +0100 Received: from relay.uni-heidelberg.de ([129.206.100.212]) by mx-ha.gmx.net (mxgmx115 [212.227.17.5]) with ESMTP (Nemesis) id 1N5F5p-1jlcZB3MyT-0119ra for ; Fri, 03 Jan 2020 22:57:04 +0100 Received: from listserv.uni-heidelberg.de ([129.206.100.94]) by relay.uni-heidelberg.de with ESMTP; 03 Jan 2020 22:57:04 +0100 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 0797E126E5C; Fri, 3 Jan 2020 22:56:57 +0100 (CET) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 17.0) with spool id 40776391 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 3 Jan 2020 22:56:56 +0100 Delivered-To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id D3DA0122BDA for ; Fri, 3 Jan 2020 22:56:56 +0100 (CET) Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Message-ID: <7344916787947584.WA.kellysmith12.21gmail.com@listserv.uni-heidelberg.de> Date: Fri, 3 Jan 2020 22:56:56 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Kelly Smith Subject: Best Practices for Separating Author Syntax and Internal Code To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE 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:SU/3tZe9DYc=:wgqWYZfuTIDQkVvef4KDEKS0sw 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 Dg0W9jHJ6n15dGXVizWI5jr1J X-UI-Loop:V01:m3agVktBSBg=:fSKxyKSqAA5TENXCTvE1qELqG2IJP0baOcpHBEWC6oI= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:WWxva3/he6o=:U6YBSdVMzIP72b4ZCh46AG HS4ZydH2x4S2+uQw3/IzM+MBukS3tZ6RQVuaQVHhndKzwjgdAWdq53gwr4MFQktqXTN3CsrZR afzbVwGRnMQu/49/6Ryhb62zVDVaMtJiLSjvSTGoQiSZRo7d6deeTx0twkJ8vv1Eko3L4YMpB miRnr3XAFkmhebboKeyDjWrX60C3FLsKTOqjXk4GwVyPNdmcgOw5OqOVyXI9yrNhsmDcVcBX7 JKZUBT/YgLMRsYz0h9KIiVvGa6Qmj9+2tsCNp3P0sAIyBiR/dcxRs7K0h6IOGwzWunI8wmzke PLdGBAy9StEpUvDq8+oGV4Wq3QGG/T651ZNQNhNnPp+GM7ZFurmu/6gXnkBrcPqsM4IBPPKyQ WN/ZKIRhpYxwMgyx40aInYdAQtDGICcv55vCBM2rD3PAnV8JVQKWSvVJztWDGQyvu2ELszWp4 9QGBbcPjMpqGYRxIMTjkktDbhgdJMwyDup5utluQ6W3wyFfY6e907wsYbB6P5K0JleR7BH/2H Q== X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by h2774747.stratoserver.net id 003LvAWk025418 Status: R X-Status: X-Keywords: X-UID: 8186 A happy New Year to everyone! After a long hiatus, I’m finally able to resume working with LaTeX. Of course, this means that I’ll be popping up, with questions, at regular intervals: my apologies, in advance. If this question would be better-posed on tex.SX, please let me know, and I’ll move it there. I am considering the following (generic) problem… I have a function that is meant to do something with a list of words/numbers/&c. Naturally, I would use a sequence, to represent the list, at the code level. I decide that, at the author level, a semicolon-separated list will be the syntax to use for the list. Now, I have two commands: — The author-facing command `\makelist{foo; bar; baz}` — The internal command `\ks__make_list:` As you can see, from the function signature, I’m not sure what the internal command should expect. There is no way to, say, generate a sequence literal, and pass it as an `n` type argument. I could pass the semicolon-separated list, untouched, and have the internal function split it into a sequence. However, that would break the syntax-code separation. Would it be better to have a local variable, `\l__ks_make_list_a_seq`, and set it before calling `\ks__make_list:`? If that is the case, should I follow a the same approach for other, similar situations? Warmly, Kelly