Step through what this is function is doing in a debugger and you will see exactly how this recursion works. I'm not being pedantic; I literally cannot think of any better way to illustrate what this is doing than referring to this interactive approach.