「コンピュータプログラムの構造と解釈」を行っていますが、演習の1つ(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)))
構文をめちゃくちゃにしたと思います。しかし、私はそれを修正する方法がわかりません。