我试图将#t转换为#f,将#f转换为#t,将负数转换为正数,反之亦然。
(define inverse
(lambda (x)
(cond ((eq? x #t) #f)
((eq? x #f) #t)
(else - x))))
它适用于布尔值,但不适用于数字。
答案 0 :(得分:3)
(else - x)
不是有效表单。将其更改为(else (- x))
。
顺便说一句,你可以不用cond
:
(define (inverse x) (if (boolean? x) (not x) (- x)))