LATEX-L Archives

Mailing list for the LaTeX3 project

LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

Options: Use Forum View

Use Monospaced Font
Show HTML Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sender:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Tue, 25 Jan 2011 08:47:00 +0000
Reply-To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Message-ID:
Subject:
MIME-Version:
1.0
Content-Transfer-Encoding:
8bit
In-Reply-To:
Content-Type:
text/plain; charset=ISO-8859-1
From:
Joseph Wright <[log in to unmask]>
Parts/Attachments:
text/plain (54 lines)
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

ATOM RSS1 RSS2