我将如何创建一个函数,使 x
的值范围从 x=0
到 x=19
并且如果x
值超过 19 或低于零,如何让它环绕
来自:
x=20、x=21、x=22
和 x=(-1)、x=(-2)、x=(-3)
致:
x=0、x=1、x=2
和 x=19、x=18、x=17
分别?
我听说过模算术,这显然是我应该处理它的方式。
最佳答案
通常您会使用内置函数 mod
和 rem
,但我认为它们是家庭作业的禁区。所以你可以编写自己的函数,例如
mod20 x | x < 0 = ...
| x > 19 = ...
| otherwise = x
您可以尝试在 ...
中填写不同的内容。最简单的方法之一是重复加法或减法,但我不想破坏所有的乐趣。
一旦有了这个函数,您就可以在每次“正常”算术运算之后“重新调整”值,例如mod20 (12 + 17)
。
关于haskell - Haskell 中的模算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6072248/