LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

 Options: Use Classic View Use Monospaced Font Show Text Part by Default Condense Mail Headers Topic: [<< First] [< Prev] [Next >] [Last >>]

 Sender: Mailing list for the LaTeX3 project <[log in to unmask]> Date: Tue, 18 Feb 2020 21:50:28 -0300 Reply-To: Mailing list for the LaTeX3 project <[log in to unmask]> MIME-Version: 1.0 Message-ID: <[log in to unmask]> In-Reply-To: <[log in to unmask]> Content-Type: text/plain; charset="UTF-8" From: Phelype Oleinik <[log in to unmask]> Parts/Attachments: text/plain (30 lines) Hi Kelly, > - Are all boxes and coffins made so that their content is wrapped in a TeX group? > More specifically, is it safe for code to assume that all box/coffin content is > implicity grouped? Yes, because the underlying TeX box makes a group:     \count0=1 \hbox{\count0=2 }\the\count0 \bye so you can assume the grouping. > - Many functions in expl3 are of the form a := func(b, c) (e.g. \str_concat:NNN, > \seq_set_map:NNn) or a := func(b) (e.g. \int_set:Nn, \tl_set:Nn). > Sometimes, one will want to write code like a := func(a, b) or a := func(a), > that is, directly assign a new value to a variable based on its current value. > Is it ever safe to write such code in expl3? Yes, because first func(a, b) is evaluated, and only then the assignment is performed. Something like:     \def\x{b} \edef\x{a\x c} makes \x=macro:->abc. Though this last one may depend a bit on the macro implementation (if the function needs intermediate steps to do its job, for example), but I'd expect to able to rely on that behaviour. Best Phelype