阶乘递归

作者讲到了几个编程原则：①Start with a working program and make small incremental
changes. At any point, if there is an error, you should have a good idea
where it is.
②Use temporary variables to hold intermediate values so you can display
and check them.
③Once the program is working, you might want to remove some of the
scaffolding or consolidate multiple statements into compound
expressions, but only if it does not make the program difficult to read.

最后作者提到leap of faith原则。就是说在头脑里过程序的时候，特别是递归，先假设我们调用的函数都是正确的。