【发布时间】:2019-05-10 08:30:28
【问题描述】:
所以我正在通过SICP 工作,其中一个问题(1.8)是使用Newton-Raphson method 实现类似于平方根过程的立方根过程。我编写了程序并尝试执行它,但得到了这个错误:*: number required, but got #<Closure> [cubert, cubeiter, cubeiter, good-enough, cube, sq, *]
这是我的代码:
(define (sq x)
(* x x))
(define (cube x)
(*(sq x) x))
(define (abs x)
(if (< x 0)
(-x)
x))
(define (good-enough guess x)
(< (abs (- x (cube guess)) )0.0001))
(define (improve guess x)
(- guess (/ (- (cube guess) 3) (* 3 (sq x)))))
(define (cubeiter guess x)
(if (good-enough guess x)
guess
(cubeiter improve x)))
(define (cubert x) (cubeiter 1.0 x))
(cubert 27)
谁能解释这个错误的含义以及我该如何解决它? #<Closure>是什么?
提前致谢!
【问题讨论】:
标签: function math error-handling functional-programming scheme