(define log2_tail
(lambda (n)
(letrec ((log2 (lambda (n res)
(if (= n 1)
res
(log2 (quotient (+ n 1) 2) (+ 1 res))))))
(log2 n 0))))
(log2_tail 3)
上面的代码是方案尾递归代码,用于计算对数基数 2 的整数部分。(实际上我不确定)但是如果我使用参数 3 执行,结果是 2 而不是 1。我猜是因为我使用了 letrec,然后我该如何解决?