Haskell弱多态

时间:2016-02-09 09:51:19

标签: haskell lambda

haskell弱多态是什么意思?是否与haskell函数无法返回类型这一事实有关?

谢谢!

1 个答案:

答案 0 :(得分:1)

TL; DR:Haskell并不是弱多态的,但是如果开发人员使用某些工具,则某些工具在某些情况下可能会表现出类似的行为。

它表明OCaml具有

的概念

弱多态类型变量

https://caml.inria.fr/pub/docs/manual-ocaml/polymorphism.html

这种类型变量的特征在于只能表示一个类型,并且一旦推断出该类型,则每次出现都会被该类型替换。

根据该定义,Haskell不是弱多态的。 Haskell将始终推断给定类型变量的最广泛定义。

但是,Haskell GHC编译器具有以下名称:

单态性限制

如OCaml弱多态变量中所述强制行为。 但是,虽然OCaml行为是按变量切换的。 Haskell GHC行为由运行时标志控制,该标志仅在进行交互式REPL时才处于活动状态,甚至可以将其关闭!