이 프로그램의 실행 흐름은 92쪽의 재귀에서 다룬 countdown의 흐름과 비슷하다. factorial을 값 3과 함께 호출한다면,
3은 0이 아니므로 두 번째 분기를 타고 n-1의 팩토리얼을 계산한다...
2는 0이 아니므로 두 번째 분기를 타고 n-1의 팩토리얼을 계산한다...
1은 0이 아니므로 두 번째 분기를 타고 n-1의 팩토리얼을 계산한다...
0은 0과 같으므로 첫 번째 분기를 타고 재귀 호출을 하지 않고 1을 반환한다.
반환값 1을 n으로 곱한다. 여기서 n은 1이다. 결과를 반환한다.
반환값 1을 n으로 곱한다. 여기서 n은 2이다. 결과를 반환한다.
반환값 2를 n으로 곱한다. 여기서 n은 3이다. 결과 6은 전체 과정을 시작한 함수 호출의 반환값이 된다.