chapter 5: exercise 13 - map via unfold