[Haskell] kind

作者: 何幻 | 来源:发表于2016-03-04 07:14 被阅读23次

类型可以看做是值的“标签”,用来区分不同种类的值。
kind可以看做是类型的“标签”,用来区分不同的类型。

例如:

ghci> :k Int
Int :: *

kind为“*”,表示Int是一个具体类型。
具体类型是那些不接受类型参数的类型。
值的类型,只能是一个具体类型。

ghci> :k Maybe
Maybe :: * -> *

* -> *”这种kind,说明Maybe类型构造器,接受一个具体类型作为参数,返回一个具体类型。

ghci> :k Maybe Int
Maybe Int :: *

ghci> :k Either
Either :: * -> * -> *

这说明Either接受两个具体类型作为参数,返回一个具体类型。

ghci> :k Either String
Either String :: * -> *

ghci> :k Either String Int
Either :: *

我们看Functor的定义,

class Functor f where
fmap :: (a -> b) -> f a -> f b

这说明,

> :k f
f :: * -> *

相关文章

  • [Haskell] kind

    类型可以看做是值的“标签”,用来区分不同种类的值。而kind可以看做是类型的“标签”,用来区分不同的类型。 例如:...

  • [PLT] 柯里化的前生今世(十二):多态性

    关于 本文借用Haskell介绍了自定义类型,带参数的类型,Ad-hoc多态性,kind,其中,带参数的类型在类型...

  • Haskell与抽象(2) ----- 从Type 到 Kind

    小明沉迷与某辣鸡氪金手游,他掏出了辛辛苦苦攒了很久的30个石头,抱着上天台的决心点下了召唤按钮,lei了!黑贞老婆...

  • 函数式的宗教-00: 认识lisp(clojure)与haske

    总体大纲: lisp与haskell简单介绍 lisp与haskell应用领域 lisp与haskell技术分析 ...

  • monad以及monad的四条定理

    haskell的范畴是hask范畴(haskell的所有类型隶属于hask范畴),所以haskell的所有函子都是...

  • 01 数据类型

    swift中结构体在haskell中的描述 枚举类型在haskell中的描述 枚举携带类型在haskell中描述 ...

  • Kind-英语学习中的难点辨析

    辨析:kind of, a kind of, kinds of 这三种是关于kind最常见的形式; kind of...

  • Be kind

  • Be Kind

    在我早期职业生涯中某个星期五的下午,我正在整理一些新特性给一个Rails客户软件。很简单的东西,我在工作上很自信,...

  • Kind

    单纯和善良真的是经历了一些事情才会明白的,自己可以做出的选择,用来抹去人性中的丑恶阴暗,让自己心更加轻松的活着。 ...

网友评论

    本文标题:[Haskell] kind

    本文链接:https://www.haomeiwen.com/subject/mjunkttx.html