Haskell类Num不包含在Ord中?

Gui*_*ido 22 haskell

我正在阅读LYAH并且读到Num类不是Ord的子集.这意味着有一个Num类型不是Ord的成员,什么可以构成这样的类型?

注意:Num不是Ord的子类.这意味着数字的构成并不一定要遵守订购.这就是为什么我们必须在进行加法或减法以及比较时指定Num和Ord类约束.

谢谢!

ken*_*ytm 29

复数(Data.Complex.Complex)是一个例子,它是一个数字(Num)但不能被排序(不是Ord).

  • @semicolon没有与其乘法兼容的复数的排序.请参见http://math.stackexchange.com/questions/492890/ordering-on-complex-numbers. (4认同)
  • @kennytm我的意思是肯定的,同样没有列表的顺序,它与你可以在列表上执行的一半功能兼容,从`nub`到`reverse`再到`concat.group`.如果某个数字类型的排序与乘法不兼容,为什么会这么大.IMO是值得的,这样你就可以用复杂的数字来做事情,例如在地图中制作键或将它们放在集合中等等. (2认同)