繁体   English   中英

haskell中的关联数据类型是什么?

[英]What is associated data type in haskell?

在路由部分, 文章说:

我们可以看到RenderRoute类定义了一个关联的数据类型 ,为我们的应用程序提供了路由。

关联数据类型是什么意思? 这意味着类型家庭?

引用文章中的代码:

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.

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