Scheme反转值

时间:2018-04-25 09:26:31

标签: scheme

我试图将#t转换为#f,将#f转换为#t,将负数转换为正数,反之亦然。

(define inverse
  (lambda (x)
    (cond ((eq? x #t) #f)
          ((eq? x #f) #t)
          (else - x))))

它适用于布尔值,但不适用于数字。

1 个答案:

答案 0 :(得分:3)

(else - x)不是有效表单。将其更改为(else (- x))

顺便说一句,你可以不用cond

(define (inverse x) (if (boolean? x) (not x) (- x)))