zer*_*ing 5 haskell types type-families
在路由部分,文章说:
我们可以看到 RenderRoute 类定义了一个关联的数据类型 ,为我们的应用程序提供路由。
什么是关联的数据类型是什么意思?这意味着类型家庭?
引用文章中的代码:
instance RenderRoute HelloWorld where
data Route HelloWorld = HomeR
deriving (Show, Eq, Read)
renderRoute HomeR = ([], [])
Run Code Online (Sandbox Code Playgroud)
如您所见,Route是关联的数据类型,是的,它意味着数据系列。看看维基例子:
我们定义了一个类型类,它的实例是我们可以在泛型映射中用作键的类型:
Run Code Online (Sandbox Code Playgroud)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- 类似于方法如何在类声明中接收类型签名。
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |