On 7/14/15 5:13 PM, Mike wrote:
On Tuesday, 14 July 2015 at 14:06:04 UTC, Andrei Alexandrescu wrote:

STL's "sequential containers" do not have serial dependence on items.
There, "sequential" is meant as a converse of "associative".

Indeed, but the term "sequence" has existed long before the STL authors
(mis)used it.  Actually, 3 of the 5 main "sequence containers" *are*
sequences.  The other 2, vector (which is another name that has always
bothered me) and array, are really best described as a random-access
containers, but the authors probably didn't want to split hairs and make
another category.

All this is more proof it comes down to a judgment call. Yeah, vector is probably a bit off,

My interpretation of the word "list" both in and out of the CS domain
jives with random access.

Well mine doesn't.

Consider a stream.  I define it to be truly a
"sequence" of bytes, specifically because of its serial nature.  I would
definitely *not* define it as a "list" of bytes.

When we say "these items must be accessed in sequence", we imply that
Item(n+1) should be accessed only after Item(n) is accessed.

I'm not seeing much of that assertion at https://en.wikipedia.org/wiki/Sequence or really wherever https://www.google.com/search?q=sequence takes you.

In our nomenclature, we should probably look more to the origin of
terms, and their usage in other domains, than their (mis)use in the CS
domain, especially C++.

I disagree. Context, affinity, and familiarity are important. It is no secret that the design of D has had C++ as a major influence, and the design of Phobos has had STL as a major influence. Defining the "right" terminology will take us from one imperfect nomenclature to another imperfect one, just less familiar one.

Let's drop it. Again: arguments base on purity and precision of widely used terms are futile.


Andrei

Reply via email to