Solutions for the s99 exercises (http://aperiodic.net/phil/scala/s-99/)