Scheme 方案程序问题

Scheme 方案程序问题,scheme,sicp,Scheme,Sicp,我定义了Scheme过程以返回另一个带有2个参数的过程: (define (smooth f) (λ(x dx)(/ (+ (f (- x dx)) (f x) (f (+ x dx))) 3.0))) 如果我用sin过程运行这个过程,这个过程有两个参数10和0.0001,那么就可以了 ((smooth sin) 10 0.0001) ==> -0.544021109075966 如果我递归地运行这个过程,

我定义了Scheme过程以返回另一个带有2个参数的过程:

(define (smooth f)
  (λ(x dx)(/ (+ (f (- x dx))
             (f x)
             (f (+ x dx)))
          3.0)))
如果我用sin过程运行这个过程,这个过程有两个参数10和0.0001,那么就可以了

  ((smooth sin) 10 0.0001) ==> -0.544021109075966
如果我递归地运行这个过程,那么它就有错误

((smooth (smooth sin)) 10 0.0001)
==> procedure expects 2 arguments, given 1: #<promise:temp6>
((平滑(平滑sin))10 0.0001)
==>给定1个参数,过程需要2个参数:#
有人能告诉我我的问题在哪里吗? 提前谢谢你


PS:这是SICP中练习1.44的一部分

非常简单,
(平滑sin)
的结果是一个2参数过程,它在外部平滑中成为F,F仅应用于一个值

解决方案是将“平滑”的结果改为一个单参数过程,然后您可以重复应用它。

((平滑((平滑sin)10 0.0001))10 0.0001)