【问题标题】:What does weird notation after type class declaration mean [duplicate]类型类声明后奇怪的符号是什么意思[重复]
【发布时间】:2017-03-14 09:59:51
【问题描述】:

ghci :i Functor 给我:

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

(f :: * -> *) 是什么意思?看起来f 需要是一个函数,但这没有意义。

【问题讨论】:

    标签: haskell syntax type-kinds


    【解决方案1】:

    星号*kinds 的 Haskell 符号,即“类型的类型”。

    Prelude> :k Int
    Int :: *
    Prelude> :k Maybe
    Maybe :: * -> *
    Prelude> :k []
    [] :: * -> *
    Prelude> :k Maybe Int
    Maybe Int :: *
    

    Functor 类是为 * -> * 类型的类型构造函数定义的,它采用一种类型并返回一个类型。

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 2017-01-09
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 2015-06-07
      • 1970-01-01
      • 2013-03-19
      相关资源
      最近更新 更多