我正在阅读“计算机程序的结构和解释”,并且在做其中一个练习(2.1)时遇到了一些麻烦。我正在以 R5RS 模式在 DrRacket 中编码。
这是我的代码:
(define (make-rat n d)
(let (((c (gcd n d))
(neg (< (* n d) 0))
(n (/ (abs n) c))
(d (/ (abs d) c)))
(cons (if neg (- n) n) d))))
这是 DrRacket 给我的错误消息:
let: bad syntax (not an identifier and expression for a binding) in: ((c (gcd n d)) (neg (< (* n d) 0)) (pn (/ (abs n) c)) (pd (/ (abs d) c)))
我想我搞砸了让我们的语法。但我不知道如何解决它。