learning Scalaz展示了如何在Haskell和scalaz中创建代数数据类型:
data TrafficLight = Red | Yellow | Green deriving Eq
和
sealed trait TrafficLight
case object Red extends TrafficLight
case object Yellow extends TrafficLight
case object Green extends TrafficLight
但是,正如教程所解释的那样,Equal.scala 不变。
Haskell有差异吗?如果是/否,在将Red
与Yellow
进行比较时是否起作用?
Prelude> Red == Red
True
Prelude> Red == Yellow
False