我正在编写一个代码片段,它接受列表中的元素并创建一个具有绝对值的变量。问题是DrRacket不喜欢我使用Let的方式。 let:错误的语法(缺少绑定对或正文):( let((abs(car l))))
(define abs
(lambda (l)
(if(>= (car l) 0)
(let
((abs(car l))))
(let
((abs(- car l)))))
)
)
谢谢
答案 0 :(得分:2)
您的let
表单中没有使用变量abs
的正文。
使用两个let
表达式也可能不是您想要的。您应该使用一个,然后在计算将变量绑定到的值时使用if
。
(define abs
(lambda (l)
(let ((val (if (>= (car l) 0)
(car l)
(- (car l)))))
val)
)
)