A subtle point: the function doesn't actually "exit" here, but stays on the stack while adding another call to make_chioce(). This works fine until you design a program that might run for a super long time when eventually you might run out of space on the stack and your program would crash.