Scheme并让语法

时间:2010-03-04 03:53:35

标签: scheme

 (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) 你能帮忙吗?

1 个答案:

答案 0 :(得分:6)

在let之后你放错了方括号。在你定义一个常量后,使用常量的代码必须在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)))))
顺便说一句,你还需要定义sum函数。