On 21/03/2011, at 11:00 PM, Bruno Le Floch wrote:
> Another question I noticed is whether mappings should be made nestable
> or not. I _think_ that \seq_map_function:NN is nestable, and that
> \seq_map_inline:Nn and \seq_map_variable:NNn are not. All three can be
> made expandable, I believe. Should they?
Indeed they should.
I ran into this problem just the other day and left a note to come back to this issue :)
> A modus operandi to easily switch to the proposed l3seq would be first
> to get rid of all the explicit \seq_elt:w ... \seq_elt_end:, for
> instance by replacing \seq_show:N by \seq_display:N in testfiles, and
I've actually wondered if \seq_show:N is really needed at all, but we've never come up with a good enough argument to drop it completely in favour of \seq_display:N.
I've updated a small handful of test cases to use \seq_display:N instead, but there are many more examples that use \meaning (etc.) that probably need adjusting.
> replace ad hoc constructs by some \..._map_inline where possible.
It's just a few in xor, right?
Looking in say \xor_save_area_info:n, perhaps all it needs is for \seq_elt:w and \seq_elt_end: to be \protected, and then their reassignment to \relax could be avoided. Haven't tried, though.
> If something slightly more advanced (e.g. some things in Will's
> version of the NFSS) is needed, I'm happy to code two versions:
> - with \seq_elt:w ... \seq_elt_end: now, so that everything is in
> l3seq (or l3candidates)
> - with \seq_elt:n for later when/if we switch.
I have to admit I'm more comfortable to first expand what we've currently got (extra functions, smooth over some extra edge cases, etc.) and then consider switching to a different internal format after the first stage is complete.
But if we adjust these test cases and it seems that switching to the new internal format "just works", then I'm open to diving in head-first so to speak.