作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Time -> DateTime nextMinute date tim-6ren">
我对 Haskell 还很陌生,我不明白为什么我不能比较这两个变量。我有这个功能:
nextMinute :: Date -> Time -> DateTime
nextMinute date time = if time == Time 23 59
then DateTime (tomorrow date) newDay
else DateTime date (timeSucc time)
我收到此错误消息:
Time.hs:88:32:
No instance for (Eq Time) arising from a use of ‘==’
In the expression: time == Time 23 59
In the expression:
if time == Time 23 59 then
DateTime date newDay
else
DateTime date (timeSucc time)
In an equation for ‘nextMinute’:
nextMinute date time
= if time == Time 23 59 then
DateTime date newDay
else
DateTime date (timeSucc time)
最佳答案
您可以只使用模式匹配,而不是使用 ==
:
nextMinute :: Date -> Time -> DateTime
nextMinute date (Time 23 59) = DateTime (tomorrow date) newDay
nextMinute date time = DateTime date (timeSucc time)
将 Eq
添加到您的 Time
类型中可能没问题,但是当存在同样好的模式匹配解决方案时,没有特别需要。
关于 haskell 错误: "No instance fo (Eq Time) arising from a use of ' ==',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33289107/
我是一名优秀的程序员,十分优秀!