fast-exp 中的 SICP 1.2.4 拼写错误?

SICP 1.2.4 typo in fast-exp?

我正在通过 SICP,我不确定这是书中的错误还是我遗漏了什么。

为了计算 fast-exp 作者给出了以下规则:

b^n = (b^(b/2))^2 if n is even

b^n = b * b^(n - 1) if n is odd

然而,当他们展示偶数 n 的实现时,我们有:

((even? n) (square (fast-expt b (/ n 2))))

我认为这是正确的。

我相信

b^n = (b^(b/2))^2 if n is even

应该改为

b^n = (b^(n/2))^2 if n is even.

真不敢相信这么老的书竟然有这样的错误。我也试图在网上找到关于这个问题的任何讨论,但没有成功。不确定这里发生了什么。提前致谢。

link to the mentioned chapter

你是对的,这是一个打字错误 - 如果 n 是偶数,公式应该是 (b^(n/2))^2。但已在 errata.

中更正