繁体   English   中英

在 Haskell 中对自定义数据类型实施枚举实例行为

[英]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

predsucc按预期工作,但是我还想实现范围 function,这样我就可以调用

ghci> [Green .. Red]

并让它返回

[Green,Yellow,Red]

我知道此功能似乎来自Enum类型类中的enumFrom function ,但我不完全确定如何按照我实现predsucc的方式实现它。

enumFrom上对 enumFrom 的描述给出了以下可能的定义enumFrom n = n: enumFrom (succ n) 它应该适用于您的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM