[英]Implement Enum Instance behavior on custom data type in Haskell
我在 Haskell 中有一个自定义数据类型来表示交通灯
data TrafficLight = Red | Yellow | Green
我正在尝试使用像这样的实例块来实现Enum类型类的特性:
instance Enum TrafficLight where
succ Green = Yellow
succ Yellow = Red
succ Red = Green
pred Green = Red
pred Yellow = Green
pred Red = Yellow
pred和succ按预期工作,但是我还想实现范围 function,这样我就可以调用
ghci> [Green .. Red]
并让它返回
[Green,Yellow,Red]
我知道此功能似乎来自Enum类型类中的enumFrom function ,但我不完全确定如何按照我实现pred和succ的方式实现它。
enumFrom
上对 enumFrom 的描述给出了以下可能的定义enumFrom n = n: enumFrom (succ n)
。 它应该适用于您的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.