remove useless Iterate impl, and permute the order of the argument of iterate

Writing iterate(x, f) is more logical as rust iterator pipeline is left to right.
Improve variable naming.