finished RecursionPatternMatchingExercise