Non-mutating sequence algorithms.
They do not modify the contents of the class they work on.
Their typical operation is a searching operation for
a particular element and returning its position.
So you can imagine that you have a whole bunch of stuff, on your desk,
you could have a whole bunch of friends with their telephone numbers and
you want to search it to find a particular telephone number.
So that's what searching is going to mean,
typically a linear operation and here are some of the non-mutating algorithm.
You don't change any values but you need to find something.
And again if you look at the prototype, here's an iterator
range that's a very frequent part of a signature.
This tells you that it requires a very weak
iterater type, weakest in this case.