Print

Print


> By the way, with the interfaces but back in the compatibility section shows
> some failures in some files that need checking. Not really got around
> checking for cause.
>
> xor certainly dies because some of its code misuses the seq implementation
> and hacks into \seq_elt:w so not surprising this dies. For others I don't know
> yet.

I quickly grepped through xor, and it seems easy to change since the
most complicated thing that is done with \seq_elt:w and \seq_elt_end:
is

    \cs_set_nopar:Npn \seq_elt:w ##1\seq_elt_end: {##1,}

which can be replaced by

    \cs_set_nopar:Npn \seq_elt:n ##1 {##1,}

A more general (temporary) fix is to define \seq_elt:n as

    \cs_set:Npn \seq_elt:n #1 {\seq_elt:w #1 \seq_elt_end:}

instead of \ERROR\use_none:n when it is not active.


> I must say I rather like \seq_pop_left_with:Nn as a generic approach. It is
> just that I don't want to drop the function that one normally needs for it.
> And I rather prefer the _pop_with to _pop_do.

Ok, so let it be _pop_with.


> or even
>  \seq_get_pop_left:NN

Why not \seq_get_left_pop_left:NN? ;-) I think that keeping names
rather short is better.


>  \seq_gget_pop:NN
>  \seq_get_gpop:NN
>  \seq_gget_gpop:NN
>
> perhaps that's better but I'm not sure if it is not just making things
> longer

I would keep \seq_pop:NN and \seq_gpop:NN with a local return value,
with \seq_pop_with:Nn and \seq_gpop_with:Nn for other uses.

>  > where the \use:n unbraces its argument. Not a very convincing use.
>
> No not really :-) if it is a serious use I would probably encapsulate it by
> its own functions and then use those, but anyway ...
>
>  > But Lars Madsen's examples with { \foo_func:nn {arg1} } are better.
>
> yes probably

Another option is to keep the name \..._map_function:NN but
undocumentedly allow the second argument to be braced. I'm not
convinced, though.


>  >    \clist_remove_element:Nn
>  >    \tl_remove_all_in:Nn
>  >    \tl_remove_in:Nn
>
> agreed some concistency in the naming would be in order. About the actual
> names  to use I'm not so sure. Must confess I wasn't aware of the tl ones at
> all.  The _in seems to me unnecessary and I would personally prefer
>
>  \tl_remove_once:Nn
>  \tl_remove_all:Nn

That seems reasonable.

Regards,
-- Bruno