On 24/01/2011 14:01, Lars Hellström wrote: > Isn't this "elt" an implementation detail for that type of list (various > \@elt tokens in 2e come to mind), and thus something that should be kept > internal rather than canonised in a public interface? The clean solution > for *both* types of list is rather to use "length". Seems reasonable: one would normally talk about 'a long list of things to do', so lists to have 'length' :-) > Moreover, I get a vague impression that the term `elt' is part of the > pseudo-LISP heritage of LaTeX (emphasis on the "La"). If so, then that > is IMHO another reason to avoid it, as that heritage is full of square > pegs trying to fit in round holes. Not being familiar with Lisp, I can only go on things like LaTeX2e's \@cdr, etc., which have much more sensible names in expl3. >> I didn't write "clist_nth" with a view of it being the permanent name, >> but >> now that I've written it I can't think of a (good) alternative. Any >> thoughts? > > I think the verb you're looking for is "index", i.e., the command name > would be clist_index. I'd imagine 'index' to be the other way around: \clist_index:Nn \l_some_clist { item } => Number whereas what Will has implemented gives the 'entry', 'element', 'item' or some such name. ('element' seems to be discouraged based on the first part of your e-mail, so perhaps 'item' is better.) > first: Return index of first occurrence of a particular item within a > clist, > or -1 (given 0-based indices) if the item does not occur therein. > last: Return index of last occurrence of a particular item within a > clist, > or -1 (given 0-based indices) if the item does not occur therein. > (Note: Slightly trickier to implement.) Both of these look relatively easy to do. > range: Return a subrange of the clist, i.e., if \a_clist is "a,b,c,d" then > \clist_range:Nnn\a_clist{1}{2} returns "b,c". (I don't have an > opinion as to what might be the best sense of "return" in this > case.) > replace: Replace the material in a subrange of the clist by some other > clist material. More tricky. Let's sort the others first :-) -- Joseph Wright