Chapter 3

@Spinodal - it's counting the number of case changes, hence why the final `else` case doesn't add 1 to the recursive call result.