1
7
Haskell的类型系统是
表语
,这意味着当我们使用多态值时
那么,为什么这些线条之间存在差异呢?
在第一种情况下,类型检查器能够检查
然而在第二种情况下,
现在,函数的类型是什么
制作
GHC开发人员已经提出了几次尝试,使Haskell“不那么具有可预测性”,并允许某些类型的不可预判性。其中一个甚至被实现为扩展,然后事实上被弃用,因为它和其他几个扩展不太兼容。因此,事实上,Haskell目前不允许非专用性。这在未来可能会改变。 最后几点注意事项:
第二个例子可以通过为以下对象提供显式多态签名来修复
或者,另一种选择是禁用德雷德同态限制:
我不会重复DMR的精彩解释,可以在
this answer
简而言之,Haskell努力为非函数分配单态类型,例如
|
trpnd · 如何定义由两个任意单声道变压器组成的单声道变压器? 2 年前 |
Fabus1184 · Haskell mapM_不打印 2 年前 |
Gotthold · 基于范数约束向量的类型 2 年前 |
jian · haskell将另一个函数用作输入参数 2 年前 |
Jocafrei · 用Haskell函数实现最大公约数函数 6 年前 |