检查数字是否为负数并在 Racket 中使用绝对值

问题描述

我想检查 x 是否为负数,如果是,则获取它的绝对值。否则,什么都不做。 这是我迄今为止尝试过的。

(when (< x 0)
  (set! x (abs x))
  )
(set! x(abs x))

这两个都给出了“违反合同。预期:真实?给出:#f”

我做错了什么?

编辑:我试过了,我认为我已经取得了进展。

(cond
  [(< x 0) (set! y(abs x))]
  [else (print "input error")]
  )

'

解决方法

为什么不只写

(set! x(abs x))

?它适用于负值和正值。