On 24/12/2008, at 8:36 AM, Joseph Wright wrote:

> I was reading through part of l3tlp, and I came across:
> \def_long_test_function:npn{tlist_if_eq:nn}#1#2{
>  \tlp_set:Nx \l_testa_tlp {\exp_not:n{#1}}
>  \tlp_set:Nx \l_testb_tlp {\exp_not:n{#2}}
>  \if_meaning:NN\l_testa_tlp \l_testb_tlp
> }
> Why is this \tlp_set:Nx plus \exp_not:n, rather than just \tlp_set:Nn?

I think that's to guard against # tokens. Since arbitrary token lists  
could be being used in this function, you can't assume (as tlp's  
usually do) that there won't be any #'s.

Took me a second to think about this, though, before I realised we're  
dealing with unrestricted token lists. (Maybe this is a key difference  
between a tlp and a tlist that I overlooked in my previous discussion  
for them.) I'll add some text to the documentation for this function.