相关疑难解决方法(0)

每次递归都可以转换成迭代吗?

一个reddit线程提出了一个显然有趣的问题:

尾递归函数可以简单地转换为迭代函数.其他的,可以通过使用显式堆栈进行转换.可每次递归转化为迭代?

帖子中的(计数器?)示例是对:

(define (num-ways x y)
  (case ((= x 0) 1)
        ((= y 0) 1)
        (num-ways2 x y) ))

(define (num-ways2 x y)
  (+ (num-ways (- x 1) y)
     (num-ways x (- y 1))
Run Code Online (Sandbox Code Playgroud)

language-agnostic iteration recursion

175
推荐指数
7
解决办法
7万
查看次数

用于将递归算法转换为迭代算法的设计模式

是否有任何通用的启发式,提示,技巧或常用设计范例可用于将递归算法转换为迭代算法?我知道可以做到,我想知道在这样做的时候是否有值得牢记的做法.

iteration algorithm recursion heuristics

43
推荐指数
4
解决办法
3万
查看次数