
On Fri, 2009-02-20 at 13:28 +0100, Thorsten Ottosen wrote:
Dear Developers and Users,
It's my pleasure to announce that the review of Neil Groves' RangeEx library starts today and lasts until March 3, 2009.
That's great news! I've much anticipated this library, since I'd hand-rolled similar components a long time ago. I hope to submit a formal review, but before I do, I hope to understand the motivation for the design better. I hope this is allowed within a formal review. This is related to my question at <http://lists.boost.org/Archives/boost/2008/07/140514.php>. I am not sure I understand the motivation for the operator| syntax. Why couldn't vec | boost::adaptors::reversed | boost::adaptors::unique be written boost::adaptors::unique (boost::adaptors::reversed (vec)) ? I think this contrast would be fairer than what the documentation currently has. Is there a reason why it is not possible to provide both syntaxes? The pipe syntax is nice, but sort of restricts operations to 1 range in, 1 range out. Relatedly: I was hoping for more lazy views on ranges, especially after reading that the library allows for a "seamless funtional-style programming". Shouldn't there be a generated(), randomly_shuffled(), sorted(), intersected(), merged(), etc.? (I implemented lazy set operations implemented and I think it's quite possible.) In short, I seem to see unexploited symmetries. Am I missing things? Thanks for any replies, Rogier