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

Posted

技术标签:

【中文标题】检查数字是不是为负并在 Racket 中使用绝对值【英文标题】:Checking if a number is negative and using absolute value in Racket检查数字是否为负并在 Racket 中使用绝对值 【发布时间】:2021-05-06 07:12:29 【问题描述】:

我想检查 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设置为x的绝对值。在您编辑的代码中,您使用y 作为x 的绝对值。现在是哪个?是同一个变量还是另一个? 如果你写' 是的,这是为我做的。谢谢! 【参考方案1】:

为什么不只写

(set! x(abs x))

?它适用于负值和正值。

【讨论】:

以上是关于检查数字是不是为负并在 Racket 中使用绝对值的主要内容,如果未能解决你的问题,请参考以下文章

Pandas Dataframe - 如何检查列中数值的符号,如果为负则删除符号并在发生这种情况时创建另一列?

汇编语言,检查数字是不是可被 2 整除并在循环中打印数字的程序

有没有办法在bluw j中编写此代码

如何检查一个数字是不是有两位小数并在必要时保留尾随零?

使用 VIM 的编程方案(Racket) - 如何开始

检查字符串是不是为整数(包括负数) PHP