- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题与存在类型不明确的中间值的情况下的类型类实例推导有关
Prelude> :t fromInteger 0
fromInteger 0 :: Num a => a
Prelude> :t (==)
(==) :: Eq a => a -> a -> Bool
Prelude> :t (==) (fromInteger 0)
(==) (fromInteger 0) :: (Eq a, Num a) => a -> Bool
Prelude> :t (==) (fromInteger 0) (fromInteger 1)
(==) (fromInteger 0) (fromInteger 1) :: Bool
Prelude> (==) (fromInteger 0) (fromInteger 1)
False
a
如何或是否已具体化,但代码运行成功!
a
表示的类型变量以上由于兼容
Num a
,所以相互统一成功不同条款的约束。但是,
a
从不绑定(bind)到具体类型。我的问题是,在运行时,
(==)
使用哪个实例字典(或特化,等等)功能?
memcmp
风格比较?或者它只是在其列表
Num
中选择第一个实例。实例,因为理论上它应该无关紧要(只要该实例的代数属性被正确实现......)
最佳答案
是的,它是由 defaulting 制成的混凝土,这几乎是你的第二个理论。
The expression [..] is ambiguous because the literal 4 is of Num a => a type in Haskell. 4 can be an Int, a Float or any other type that is an instance of Num, so the compiler can’t choose any particular type for the same reason above. But the Haskell Committee thought that this is too much restriction. After much debates, they compromised and added an ad-hoc rule for choosing a particular default type.
2^64 == 0
,则
True
是
Int
,但如果选择了
False
,则
Integer
。
Integer
是默认列表中的第一个,这是有充分理由的。 )
关于haskell - 当中间值从未具体键入时,Haskell 编译器如何为 `(==) (fromInteger 0) (fromInteger 0)` 发出代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54000708/
背景 我最近在 merge 期间遇到了一个意外未 merge 的文档文件的问题。 无论出于何种原因,我搞砸了 merge 并有效地删除了文件(和其他几个文件),因为我忘记了它们的存在。 现在我想查看我
我在我的网站上使用旧的 mysql 版本和 php 版本 4。 我的表结构: | orders_status_history_id | orders_id | orders_status_id |
我是一名优秀的程序员,十分优秀!