Am 27.12.2018 um 09:49 schrieb Bruno Le Floch:
>> Is it correct to use 'Ncnx' instead of 'Ncnn'? What is the best
>> argument specification to use instead of 'Ncnx' here?
>> Thanks,
>> Tisha

> \exp_args:Nc

To elaborate briefly on Bruno's answer:

  - \exp_args:N... is manipulating the arguments of a function before 
they are passed to the function. "n" in its signature means to keep the 
corresponding argument  unchanged. It is therefore only needed if a 
later argument needs manipulation, e.g., \exp_args:Ncnn would do the 
same as \exp_args:Nc (only less efficient). We have therefore not 
defined all the possible additional \exp_args:N... functions ending in a 
multiple number of "n"'s

  - For the same reason you give only "Nc" in a \cs_generate_variant:Nn 
specification even if the base function for which you want make the 
variant has more than 2 arguments.

Using Ncnx instead would be conceptually wrong as that changes the 
argument as well.


A different topic is is the use of "c" which is not what you want. "c" 
makes a csname from string input (at least that is the idea) while "v" 
would make it from the content of a variable