Working my way through Ninety-Nine Scala problems, http://aperiodic.net/phil/scala/s-99/