1. 基本的线性递归:对自身的调用在里层,肯定不在最外层 2. 基本的线性迭代:对自身的调用在最外层 3. 返回list的线性递归:特征是用cons来完成结果的构造 4. 返回list的线性迭代:特征是用append来完成结果的构造