>From the initial discussions on std.range back in 2009, it was decided that std.range operates on topology, whereas std.algorithm operates on contents.  Basically, stuff in std.range doesn't care what any of the values in the range are, std.algorithm does.  Of course, the similar names etc. may warrant bending the rules.<br>
<br><div class="gmail_quote">On Fri, Jul 29, 2011 at 5:58 PM, Jonathan M Davis <span dir="ltr"><<a href="mailto:jmdavisProg@gmx.com">jmdavisProg@gmx.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Is there a simple way to distinguish whether something belongs in std.range or<br>
std.algorithm? I know that in at least some cases, it's debatable as to<br>
whether something belongs in one or the other, but is there a general rule<br>
that we could give in one sentence or so?<br>
<br>
For instance, I've been debating the situation with <a href="https://github.com/D-%0AProgramming-Language/phobos/pull/147" target="_blank">https://github.com/D-<br>
Programming-Language/phobos/pull/147</a> a bit (it adds takeWhile, drop, and<br>
dropWhile). drop clearly belongs in std.range, but both takeWhile and<br>
dropWhile could go in either std.range or std.algorithm. Given the<br>
similarities in their names to take, takeExactly, and drop, they should<br>
probably go in std.range. However, there _are_ similar functions in<br>
std.algorithm (e.g. takeWhile is similar to until). So, I don't know which<br>
place is better (at present they're in std.range). But I'm not even aware of a<br>
rule that I could give in a sentence or two which would say what the general<br>
dividing line between std.range or std.algorithm is. You can get a feel for it<br>
by seeing what's currently there, but it would be nice if we could have an<br>
actual rule which made it clearer.<br>
<font color="#888888"><br>
- Jonathan M Davis<br>
_______________________________________________<br>
phobos mailing list<br>
<a href="mailto:phobos@puremagic.com">phobos@puremagic.com</a><br>
<a href="http://lists.puremagic.com/mailman/listinfo/phobos" target="_blank">http://lists.puremagic.com/mailman/listinfo/phobos</a><br>
</font></blockquote></div><br>