我是函数式语言的新手,我正在使用 Racket 进行 SICP 编程作业。
下面是一段代码,Racketdefine: expected only one expression for the function body, but found 5 extra parts
在第 5 行 ( (define (y k)
) 中告诉我:
(define (simpson f a b n)
(define h (/ (- b a) n))
(define (y k)
(f (+ a (* k h))))
(define (factor k)
(cond ((or (= k 0) (= k n))
1)
((odd? k)
4)
(else
2)))
(define (term k)
(* (factor k)
(y k)))
(define (next k)
(+ k 1))
(if (not (even? n))
(error "n can't be odd")
(* (/ h 3)
(sum term (exact->inexact a) next n))))
我猜这个问题与语言设置有关,但我已经使用了“高级”选项。
有人知道如何正确配置 Racket,还是不支持内部“定义”?