scheme - 如何在 Racket 中得到小数的余数?

标签 scheme racket arithmetic-expressions

我将 Racket 视为对 lisp 的友好介绍,但我错过了一些东西。我需要简化角度,所以我需要做的就是得到 n mod 360。问题是 n 可能是小数。我查看了文档,但是 "remainder""modulo"两者都期望整数。

flonum module看起来很有希望,但看起来没有 % 功能。

我最终将它重新实现为这个表达式,效果很好:

(define (float-modulo n m)
  (- n (* (floor (/ n m)) m)))

但如果这已经得到支持,我宁愿不这样做。

最佳答案

Racket 通过 rnrs/base-6 库提供 R6RS 除法运算符,因此您可以执行以下操作:

(require rnrs/base-6)
(mod 370.25 360)
> 10.25

关于scheme - 如何在 Racket 中得到小数的余数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40754513/

相关文章:

lisp - 语法从 'The Little Schemer' 中的示例更改为真实的 Scheme

macros - Define 和 let w.r.t. 之间的区别语法规则关键字

syntax - 鸡计划是否支持复数?如果是这样,为什么我会收到此错误?

python - 算术运算符

algorithm - 具有简单算术运算符的模式

scheme - 检查Scheme中的2个区间是否重叠

scheme - 将列表的元素配对在一起

syntax - 拼接语法参数化禁用 Typed Racket 类型注释

scheme - 一个 Racket 内的多个程序有条件吗?

bash - Bash 中的表达式递归级别超出错误