template UnaryFunction for_each(InputIterator begin, InputIterator end, UnaryFunction f) { if (begin == end) return f; else { f(*begin); for_each(++begin, end, f); } }