这个尾巴是递归的吗?

R S*_*ahu 2 scheme tail-recursion

根据我对尾递归的理解,以下函数不是尾递归函数.

(define (map f L)
  (if (null? L)
    '()
    (cons (f (car L)) (map f (cdr L)))))
Run Code Online (Sandbox Code Playgroud)

cons将不得不等到(map f (cdr L))返回完成其工作.这可以防止它被尾递归.

我对吗?

Joh*_*nts 5

是!

对于Stack Exchange来说,这个答案显然不够长.

是的,顶上有樱桃!

  • 这是一个正确的答案,但需要一点解释才能使它成为一个非常好的答案...... (2认同)