什么是Haskell的多态性风格?

Eli*_*der 26 polymorphism haskell type-systems functional-programming

使用Haskell的类型类似乎它几乎可以实现ad hoc多态,但它的函数声明似乎是参数多态.我混合了对不同事物的理解吗?

Don*_*art 32

实际上,Haskell支持(更高级别)参数多态性和ad hoc(或有界)多态性.Haskell中的参数多态通过其Hindley-Milner/System F类型系统得到支持.通过类型类支持Ad hoc多态.

对于类类和ad hoc多态的起源,请参阅Wadler的论文:

对于参数和ad hoc多态的区别的起源,你可以挖掘Strachey的论文,

  • @Eli,Don我认为值得一提的是,Haskell的类型系统支持更高级别的多态性,这在其他静态类型语言中是非常缺乏的.较高级别通常也是其他语言的缺失特征. (2认同)