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

问题描述 投票:1回答:1

在路由部分,article说:

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

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

haskell types type-families
1个回答
4
投票

引用文章中的代码:

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 k v  
    lookup      :: k -> GMap k v -> Maybe v  
    insert      :: k -> v -> GMap k v -> GMap k v

有趣的部分是该类的相关数据族声明。它为关联数据类型* -> *提供了一种类型签名(此处为GMap k) - 类似于方法如何在类声明中接收类型签名。

© www.soinside.com 2019 - 2024. All rights reserved.