我所限定的计划程序与2个参数返回另一个过程:

(define (smooth f)
  (λ(x dx)(/ (+ (f (- x dx))
             (f x)
             (f (+ x dx)))
          3.0)))

如果我以2个参数10和0.0001运行与罪过程该过程然后它是确定

  ((smooth sin) 10 0.0001) ==> -0.544021109075966

如果我递归运行此过程,那么它有误差

((smooth (smooth sin)) 10 0.0001)
==> procedure expects 2 arguments, given 1: #<promise:temp6>

因此,谁能告诉我哪里是我的问题吗? 谢谢你在前进!

PS:这是分开练习1.44的在SICP

有帮助吗?

解决方案

这很简单,(smooth sin)的结果是成为在F在外部SMOOTH 2参数的程序,和F被施加到仅仅一个值。

的解决方案是使结果平滑的1参数过程代替,那么就可以反复使用它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top