Bartosz Milewski seems to like D more than C++ now :)

Craig Dillabaugh craig.dillabaugh at gmail.com
Fri Sep 20 07:55:40 PDT 2013


On Friday, 20 September 2013 at 14:49:21 UTC, H. S. Teoh wrote:

snip
> [...]
>
> Some trees do, like document trees. But yeah, in general, you 
> don't have
> a natural ordering to trees.
>
> But then again, the whole point of ranges is *linear* 
> traversal. If
> you're not doing that, then it's probably the wrong abstraction 
> to use.
> (FWIW, while SortedRange is a neat hack, I haven't actually 
> found it
> that useful in practice. Most of the ranges I actually use are 
> for the
> cases where it's an input/forward range and you don't want to 
> store the
> whole thing, so random access is impractical. The cases where I 
> actually
> have random access usually turn out to be plain ole arrays 
> anyway, so
> the SortedRange abstraction isn't really necessary.)
>
> So for trees, I'd argue that you need a tree-specific iteration
> abstraction, not ranges, which are linear. It's a clear case of
> structure conflict. ;-)
>
>
> T

Excuse my lack of knowledge on Ranges, so maybe what I am 
proposing is infeasible, for a binary tree for example couldn't 
you have a InOrderRange, PreOrderRange, and PostOrderRange or 
alternately DepthFirstRange, and BreadFirstRange.  From a 
consumers view those would be linear operations?

Craig


More information about the Digitalmars-d mailing list