can*_*an. 3 scheme sicp racket
我是功能语言的新手,我正在使用Racket进行SICP编程任务.
下面是一段代码,Racket告诉我define: 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))))
Run Code Online (Sandbox Code Playgroud)
我想这个问题与语言设置有关,但我已经使用了"高级"选项.
有人知道如何正确配置Racket,或者不支持内部"定义"?
实际上,就像你说的那样:define
高级语言不支持内部版本.对于使用SICP练习,我被告知最好使用该neil/sicp
包:此处详细说明了使用它的说明.
但是,即使是标准的Racket语言(#lang racket
)也会define
毫无问题地支持内部语言.
归档时间: |
|
查看次数: |
1327 次 |
最近记录: |