programming pearls: chapter 2