haskell弱多态是什么意思?是否与haskell函数无法返回类型这一事实有关?
谢谢!
答案 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时才处于活动状态,甚至可以将其关闭!