Scheme 和 let 语法
(define (Integral f a b N)
;define h as a constant
(let((h (/ (- b a) N))))
(define (Term n)
(* (/ h 3) (+ (* 2 (f (+ a (* 2 (* n h)))))
(* 4 (f (+ a (* 2 (* (- n 1) h)))))
)
))
(+ (* (/ h 3) (+ (f a) (f b))) (sum Term a next (/ N 2.0))))
这段代码会产生错误 r5rs:body: 正文中没有表达式: (r5rs:body) 你能帮忙吗?
(define (Integral f a b N)
;define h as a constant
(let((h (/ (- b a) N))))
(define (Term n)
(* (/ h 3) (+ (* 2 (f (+ a (* 2 (* n h)))))
(* 4 (f (+ a (* 2 (* (- n 1) h)))))
)
))
(+ (* (/ h 3) (+ (f a) (f b))) (sum Term a next (/ N 2.0))))
This code produces an error
r5rs:body: no expression in body in: (r5rs:body)
Could you please help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Let后你把大括号放错了。在 let 中定义常量后,使用该常量的代码必须位于 let 范围内。因此,您的错误是缺少表达式的主体。
这是更正后的代码:
顺便说一句,您仍然需要定义 sum 函数。
You misplaced the braces after the let. After you defined a constant in let the code that uses the constant has to be inside of the let's scope. Hence your error about missing the body of the expression.
Here is the corrected code:
BTW, you still need to define the sum function.