Quote Originally Posted by tiliavirga
You must have replied to an earlier post I accidentally posted and then deleted. My reply to your post is #18.
No, my post #16 is a reply to your post #18. That is why I found it strange, but yeah, "posted then deleted" does explain it. Talk about concurrency

Anyway, to address your additional points:
Quote Originally Posted by tiliavirga
Furthermore the C++ range for-loops are stateless and count as functions in my book so I don't feel any particular urge to replace them with functions for functional paradigmic reasons.
That does not make sense to me: a range-based for loop is a loop statement, not a function. That said, I do like them precisely because I feel that they make things simpler these days such that there is less benefit in some previously useful application of generic algorithms. For example, previously if you want to say, print the elements of a vector (or more generally, a container that might not have random access by index, hence the use of iterators) to standard output, you have a choice between something pretty verbose like this:
Code:
for (std::vector<T>::iterator iter = some_vector.begin(); iter != some_vector.end(); ++iter)
{
    std::cout << *iter << " ";
}
and this:
Code:
std::copy(some_vector.begin(), some_vector.end(), std::ostream_iterator<T>(std::cout, " "));
whereas now this may span more lines than the generic algorithm version and lack the descriptive element of the name, but it is arguably easier to read and understand (no need to figure out the ostream_iterator) so the lack of the algorithm name is no loss:
Code:
for (const auto& item : some_vector)
{
    std::cout << item << " ";
}
Quote Originally Posted by tiliavirga
Finally many problems (like this one) can easily be executed in parallel. Then it becomes limiting to implement them using inherently sequential functions from the standard library. A solution based on range for-loops is much more readily converted into parallel (using available concurrency librares).
Good point, but it seems to me that it would be useful to have a library of generic algorithms that can cater to this.