【发布时间】:2014-05-27 03:29:11
【问题描述】:
Learn You a Haskell 表示Bool 类型:
data Bool = False | True deriving (Ord)
我不明白比较Bool的原因。
> False `compare` True
LT
> True `compare` False
GT
如果Bool 不是从Ord 派生的,会丢失什么?
【问题讨论】:
-
好吧,你不能有
Map的布尔值。没有Ord实例有什么好处?另外,请注意,如果没有预先存在的instance Ord Bool,您不能轻易地为包含Bool的任何类型派生Ord。 -
指标函数怎么样?来自枚举。 (
elem[1,2,3]) 如果应用于集合的元素,则为 1,否则为 0? -
我觉得应该叫“派生
Ord实例”而不是“派生自Ord”。 -
感谢@chaosmasttter。我刚刚更新了您的更正。