Scheme 方案程序问题
我定义了Scheme过程以返回另一个带有2个参数的过程: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 如果我递归地运行这个过程,
(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)