[英]haskell — How to avoid this infinite type? (Associated data and StateT)
[英]What is associated data type in haskell?
引用文章中的代码:
instance RenderRoute HelloWorld where
data Route HelloWorld = HomeR
deriving (Show, Eq, Read)
renderRoute HomeR = ([], [])
如您所见, Route
是关联的数据类型,是的,它表示数据族。 看一下Wiki示例:
我们定义一个类型类,其实例是可以在通用映射中用作键的类型:
class GMapKey k where data GMap k :: * -> * empty :: GMap kv lookup :: k -> GMap kv -> Maybe v insert :: k -> v -> GMap kv -> GMap kv
有趣的部分是该类的关联数据族声明。 它为关联的数据类型
GMap k
提供了一种类型签名(此处为* -> *
),类似于方法如何在类声明中接收类型签名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.