上一节介绍的 triangle 函数也可以用递归实现,如下:
(defun triangle-recursively (number) "Return the sum of the numbers 1 through NUMBER inclusive. Uses recursion." (if (= number 1) ; do-again-test 1 ; then-part (+ number ; else-part (triangle-recursively ; recursive call (1- number))))) ; next-step-expression (triangle-recursively 7)
你可以执行该函数进行安装,
然后执行 (triangle-recursively 7) 测试。
(记得把光标放在函数定义最后一个括号后面、注释前面。)
函数执行结果为 28。
要理解这个函数的工作方式, 我们分别看参数为 1、2、3、4 时会发生什么。