haskell - Haskell 类型系统中的 `Num a => a` 是什么意思?

标签 haskell

如果我强制 Haskell 推断数字的类型,我将得到 Num a => a .例如:

Prelude> :t 1
1 :: Num a => a

但是 a => a 是什么意思?意思是?

最佳答案

1 :: Num a => a表示 1有一些类型a , 其中 aNum 的一个实例类型类。请注意 Num不是类型,而是类型类,它描述了各种类型的共同属性。 Num例如,typeclass 描述了数字类型,因此支持基本算术。 native 整数类型IntNum 的一个实例, 任意大小的 Integer , 浮点类型 Double ,甚至有理数类型Rational .

关于haskell - Haskell 类型系统中的 `Num a => a` 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34974872/

相关文章:

haskell - 如何避免类型类实例的二次爆炸?

parsing - Haskell——解析器组合器关键字

haskell - 使用 ST monad

haskell - 将 ST monad 重新打扮成类似于 State monad 的东西

haskell - Haskell 中的堆溢出

haskell - 如何在 Clojure 中进行列表理解?

scala - Bi 的名称 - 具有一个逆变参数和一个协变参数的仿函数类型类

当 lambda 中存在常量值时,Haskell 会急切地评估跟踪?

haskell - 创建一个映射操作,以便每个输入元素生成 1 个或多个输出元素?

haskell - 根据数据的特定部分派(dispatch)生实例