Date:
Tue, 18 Feb 2020 21:50:28 -0300
MIME-Version:
1.0
Content-Type:
text/plain; charset="UTF-8"
|
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
|
|
|