Scheme并让语法

tes*_*t11 4 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))))  
Run Code Online (Sandbox Code Playgroud)

这段代码产生一个错误r5rs:body:身体中没有表达式:(r5rs:body)你能帮忙吗?

Vla*_*lad 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)))))
Run Code Online (Sandbox Code Playgroud)

顺便说一下,你仍然需要定义sum函数.