有没有办法否定或反转类型订购的价值?像这样:
inv = not compare
答案 0 :(得分:10)
如果您从compare
收到订购,那么您可以更改
它到flip compare
:
> flip compare 3 4
GT
或者您可以将Down
中的值包装在Data.Ord
中,这是一种新类型
存在是为了扭转事物的顺序:
> compare (Down 3) (Down 4)
GT
如果您不能或不想更改订购的地点 来自,你需要一个功能来反转它,我不知道a 内置的。您可以编写明显的模式匹配,或者从那以后 订购本身就是订购的:
inv :: Ordering -> Ordering
inv = compare EQ
答案 1 :(得分:-1)
是的,它包含在Data.Ord中,是一种名为Down
的类型。
我引用:
"如果a有与之关联的Ord实例,则比较两个值 这样包装将使你与正常的排序顺序相反。"
参考: https://hackage.haskell.org/package/base-4.10.1.0/docs/Data-Ord.html