在递归或迭代之间进行选择

时间:2017-04-05 12:22:19

标签: recursion iteration common-lisp

我目前正试图在Common Lisp中解决这个问题:

- 设定一个函数,当给定三个参数(u r n)时,返回由第一个术语“u”定义的几何序列的“n”个第一项的平均值及其公共比率“r”。

我想知道的是,如果我应该递归地或迭代地解决这个问题,我已经阅读了很多关于何时选择递归以及何时选择迭代的帖子,但它们还很不清楚。

PS:我使用的编译器支持尾递归。

1 个答案:

答案 0 :(得分:3)

都不是。使用explicit formula

PS。迭代和递归之间的选择应基于代码可读性和可维护性,而不仅仅是速度:

  

......计算机语言不仅仅是一种获取计算机的方式   执行操作,而是......它是一种新颖的正式媒介   表达对方法论的看法

     

Abelson/Sussman "Structure and Interpretation of Computer Programs"