17: foldl version
recursive versions complete
new exercise 21