Print

Print


On 13/03/2011 20:14, Bruno Le Floch wrote:
> Hello all,
> 
> <snip>
>> **So my question is: do we want to support braces in seq items or not?**
> 
> Here is what I could code today. The absence of braces around each
> element makes most functions rather tricky to implement, although at
> most a factor of 2 in speed, I'd say. All the functions in the file
> I'm attaching are linear in the length of the seq (I think), i.e.
> quicker than storing the elements one by one in a new seq.
> 
> The only reason to not brace items is to be able to find an item
> faster using delimited arguments, and that this will only work for
> "nice" items (i.e., no brace, no `#`). So I have the following more
> radical proposal: brace the arguments, and propose two searches,
> 
> - one true search, which goes through each element and compares with
> `\tl_if_eq:nn`,
> 
> - a `str`-like one, which detokenizes the seq, and searches for the
> detokenized version of `\seq_elt:n {<item>}` with a delimited argument
> (now ok, since everything is detokenized).
> 
> That proposal would make the code much, much clearer in my opinion.
> Also slightly faster, but not more than two-fold.
> 

I need to read through everything, but as you are looking at a total
reimplementation, more or less, do we really need two markers in a
sequence? I've got an 'alternative' sequence system to work with just
one (\q_seq), but at present it strips braces. (I know that because I
checked after you started this thread: I'd have suggested my version
otherwise!)
-- 
Joseph Wright