我想用3个参数f fx和x以及f = sin(x)和x = 3来产生f的根的猜测。我尝试了一些代码,但我不明白。如果您能给我一些帮助,我将不胜感激。
(define (stream f fx x)
(let ((x (3))
((f x) (sin x))
((fx x) (cos x)))
(cons-stream (x (stream f fx (x (- x (/ (f x) (fx x)))))))))
(stream f fx 3)
答案 0 :(得分:1)
您的代码是这样的(我已应用缩进使括号更清晰):
(define (stream f fx x)
(let ((x (3))
((f x) (sin x))
((fx x) (cos x)))
(cons-stream (x (stream f fx (x (- x (/ (f x) (fx x))))
))
)))
(stream f fx 3)
您在此方面有一些错误:
(3)
将3视为过程,并尝试调用它。您应该改为使用3
。(x (stream ...))
和(x (- x ..))
都将x视为函数,但这是一个数字。因此,清除这些错误后,代码将更加像这样:
(define (stream f fx x)
(cons-stream x (stream f fx (- x (/ (f x) (fx x))))))
(let ((x 3)
(f (lambda (x) (sin x)))
(fx (lambda (x) (cos x))))
(stream f fx x))
lambda用于定义局部函数。希望有帮助,如果有任何不清楚的地方,随时提出后续问题。