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

Checking if a number is negative and using absolute value in 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")]
  )

“< x 0”很难将 0 与浮点数进行比较。我如何比较浮点数?

为什么不只写

(set! x(abs x))

?它适用于负值和正值。