Print

Print


On 15/09/2014 7:22 p.m., Joseph Wright wrote:
> On 15/09/2014 05:55, aparsloe wrote:
>> I have found a number of instances where I have wanted to generate a
>> variant with varying degrees of branching, e.g.
>>
>> \cs_generate_variant:Nn \tl_case:Nn { No }
>> \cs_generate_variant:Nn \tl_case:NnT { No }
>> \cs_generate_variant:Nn \tl_case:NnF { No }
>>
>> I find myself envious of the functionality available with
>> \prg_new_conditional:Npnn and its ilk where multiple degrees of
>> branching can be coded in a single statement using a subset of { p, F,
>> T, TF }. It would be nice to be able to write something similar, e.g.
>>
>> \cs_generate_variant:Nnn \tl_case:Nn { No } { , F, T }
>>
>> where the empty slot before the first comma denotes the nonbranching
>> variant.
>>
>> I don't imagine I'm the first to have thought this, so presumably there
>> is good (or at least some) reason for not providing the functionality.
>> It would be good to know.
>>
>> Andrew
> I don't remember any technical reasons for not doing this: I guess
> primarily we've not needed it often enough.
>
> Probably this would go into \prg_... as it's only applicable to
> conditionals (we have \prg_new_eq_conditional:NNn and
> \prg_set_eq_conditional:NNn). I guess something like
> \prg_generate_conditional_variant:Nnn would be an appropriate name.
>
> Thoughts?
> --
> Joseph Wright
Correction: I meant to write

\cs_generate_variant:Nn \tl_case:Nn { o }

etc., expanding the token list variable.

Andrew