我正在编写一个代码片段,它获取列表中的一个元素并创建一个具有其绝对值的变量。问题是 DrRacket 不喜欢我使用 Let 的方式。 let: 语法错误(缺少绑定(bind)对或正文)in: (let ((abs (car l))))
(define abs
(lambda (l)
(if(>= (car l) 0)
(let
((abs(car l))))
(let
((abs(- car l)))))
)
)
谢谢
最佳答案
您的 let
表单没有使用变量 abs
的主体。
使用两个 let
表达式也可能不是您想要的。您应该使用一个,然后在计算绑定(bind)变量的值时使用 if
。
(define abs
(lambda (l)
(let ((val (if (>= (car l) 0)
(car l)
(- (car l)))))
val)
)
)
关于scheme - 在 if 语句中使用 Let,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49700919/