代码之家  ›  专栏  ›  技术社区  ›  sdcvvc

多态类型的用途是什么?

  •  17
  • sdcvvc  · 技术社区  · 15 年前

    多态性是哈斯克尔类型系统的延伸。 supported 由UHC,允许

    data A x y = A (y x)
    

    打字作为 a -> (a -> *) -> * . 它们对什么有用?

    3 回复  |  直到 15 年前
        1
  •  11
  •   yairchu    15 年前

    一个可能的用法示例是使用conal TypeCompose 用于以无点形式组成单端变压器。

    type MyT = StateT Foo :. MaybeT :. ContT Bar
    

    (举个例子,我不知道人们会如何处理这些比赛场地和酒吧…)

    而不是:

    type MyT m = StateT Foo (MaybeT (ContT Bar m))
    

    (除了 newtype -包装纸

    目前,您需要为不同的类型复制组合器代码,这个扩展消除了重复,并允许使用一段代码来规则它们。

        2
  •  11
  •   Don Stewart    15 年前

    Adding Polymorphic Kinds to GHC

    这个问题的背景是 motivation in general for a more expressive kind system .

    也就是说,在haskell中添加多态类型的总体原因是为了提高 类型级编程 . 目前,haskell中的类型级编程基本上是非类型化的。” kind “水平。一种更丰富的语言将使haskell中的类型级编程变得更容易。

    一个更具体的例子是从syb样式的泛型中删除(动态)可类型约束。( citation )以及改进对更高级的通用编程的整体支持。

        3
  •  1
  •   Jordan Lewis    15 年前

    当然,它们对于定义在具有任意数量的数据构造函数上操作的函数很有用!

    具体的示例可以是一个函数,该函数为给定的具有任意arity的数据构造函数返回一个新的数据构造函数,该构造函数将给定的构造函数包装在某些()中。

    推荐文章
    alphacentauri  ·  HOMap实现示例
    11 年前