On Mon, 19 Jul 2010 16:37:22 -0400, Peter Alexander <peter.alexander...@gmail.com> wrote:

I've been following the D programming language for quite some time now, and only recently decided to dive in and start using it. My first impressions are that it is a very nice language (despite the library bugs), but one thing in particular that confused me was the lack of iterators, and their near complete replacement by ranges.

I did notice that there is an std.iterator library, which is said to be "growing" in the documentation.

What is the plan for this library? Will the std.algorithm start to use a mixture of iterators and ranges (as it should, in my opinion)?

You may want to check out cursors from dcollections. I apologize, the online docs are still for the D1 version, but you can learn about D2 cursors here:

http://www.dsource.org/projects/dcollections/browser/branches/d2/concepts.txt#L21

Note that cursors are still ranges, but enjoy many of the benefits that iterators are used for in STL, such as referring to single elements and using as endpoints for slices.

I'm unsure whether Andrei will admit them into phobos. All correspondence I have with him both private and public indicates they will not be admitted. But they are still ranges, so they effectively can be used in some alogrithms (though the usefulness in that capacity remains to be seen). They should make 3-legged algorithms much easier to write, and code that gets ranges from a container much more natural.

-Steve

Reply via email to