【发布时间】:2015-11-17 09:29:18
【问题描述】:
我正在编写一个以间隔作为参数并返回百分比错误的函数,但我坚持使用 let 或 let*。代码如下:
嵌套让版本:
(define (percent interval)
(let (start-point (car interval))
(let (end-point (cdr interval))
(let (center (/ (+ start-point end-point) 2)))))
(/ (- end-point center) center))
错误是:let: bad syntax (not an identifier and expression for a binding) in: start-point
让*版本:
(define (percent interval)
(let* ((start-point (car interval))
(end-point (cdr interval))
(center (/ (+ start-point end-point) 2))))
(/ (- end-point center) center))
现在的错误是:
let*: bad syntax (missing body) in: (let* ((start-point (car interval)) (end-point (cdr interval)) (center (/ (+ start-point end-point) 2))))
我参考了一些文档,但也无法找出错误所在。 (ps:我用的是 DrRacket 6.2)
【问题讨论】:
-
你提到你正在使用 DrRacket。您使用的是 Racket 语言、Scheme 语言之一(R5RS 或 R6RS)还是教学语言之一?
-
我正在使用 Scheme 但 Racket 不是 Scheme 的严格超集吗?
-
不完全是,加上各种方言都有点不同。 精确地指定你正在使用的 Scheme 的变体通常很有用——它们都不完全相同。
-
哦,抱歉,我刚刚注意到我实际上在使用 Racket,它是由
#lang racket指定的