Type类积分有两个操作quot和div,但在哈斯克尔2010语种报告它没有规定他们应该做的事情.假设这div是不可分割的,有什么quot不同,或者目的是quot什么?你什么时候使用一个,而另一个?
来自haskell报告:
如果y不为零,则quot,rem,div和mod类方法满足这些定律:
Run Code Online (Sandbox Code Playgroud)(x `quot` y)*y + (x `rem` y) == x (x `div` y)*y + (x `mod` y) == x
quot是整数除法被截断为零,而结果div被截断为负无穷大.
例如:
Prelude> (-12) `quot` 5
-2
Prelude> (-12) `div` 5
-3
Run Code Online (Sandbox Code Playgroud)
结果如何截断的区别在哪里?
虽然描述NegaskLiterals Haskell学校展示了如何使用语言扩展可能会改变某些代码的性能然后说
其他示例实际上可能会改变行为,而不是简单地降低效率
在使用扩展程序后,我无法找到任何这些行为更改实例.我只能找到他们正在谈论的性能变化以及一些在有和没有扩展名时会出错的程序.
在启用NegativeLiterals扩展时,这些程序会改变其行为?