在方案中,新的乘法函数是:
( define ( iter b a n)
( cond (( = b 0) n)
(( even? b) ( iter ( / b 2) ( * 2 a) n))
( else ( iter ( - b 1) ( / ( * a b) ( - b 1)) ( + a ( * a ( - b 1)))))))
( define ( mul b a)
( iter b a 1))
这个问题要求我使用迭代方法而不是递归方法来处理这个问题,我的想法如下:
for example: ( mul 2 3 )
b a n
begin: 2 3 1
1 : 1 6 1
2 : 0 6/0 6
显然,在步骤 2 中,a 等于 6/0。那应该是不可能的。但该功能运行良好。谁能解释一下?这是在线方案解释器中的示例。