4
A
回答
5
它发生:
v1 : mod 3 2 = 1
v1 = Refl
然而,这将类型检查,罚款。它是多态的,默认数字常量是Integer
s。
Idris> :t mod
mod : Integral ty => ty -> ty -> ty
Idris> :t 3
3 : Integer
Idris> :t mod 3 2
mod 3 2 : Integer
对于Integer
mod
类型的功能是不总。
取而代之的是使用modNatNZ
函数,因此所有类型的检测都是完美无缺的,并且工作正常。
v1 : modNatNZ 3 2 SIsNotZ = 1
v1 = Refl
相关问题
- 1. 平等检查涉及constexpr例如
- 2. 为什么在GHC 7.10中进行类型检查的代码不再在GHC 8.0.1中进行类型检查?
- 3. 为什么Seq.concat的类型涉及灵活类型?
- 4. 类型平等检查
- 5. 涉及可判决平等的证明
- 6. Haskell:为什么要进行这种类型检查?
- 7. 为什么函数涉及不在函数中的代码?
- 8. 的NullPointerException在的onResume,涉及AdMob的,但不知道为什么
- 9. 为什么PHP中的类型检查称为“提示”而不是“检查”?
- 10. 为什么idris中的这两个元组相等?
- 11. 为什么这种类型不相等?
- 12. 为什么\\。平等\。在preg_replace?
- 13. 为什么TDateTime计算涉及变量?
- 14. Haskell为什么这种类型检查
- 15. 为什么类型检查昂贵?
- 16. 比较两个相等的平均值而不涉及计算
- 17. 在C#中创建模板系统会涉及什么
- 18. 为什么进行相等性检查,不允许隐式转换对象类型,但对于int?
- 19. 涉及xpath的查询不会返回任何行
- 20. 检查涉及Python中的any()函数的条件时出现类型错误
- 21. 为什么当画布涉及时,这些面板会错位?
- 22. 为什么在Ruby中使用OR表达式进行相等性检查?
- 23. 为什么在不涉及逻辑时使用属性?
- 24. 为什么数据库或语言平台在执行查询时不会返回强类型类?
- 25. 为什么不这种类型检测?
- 26. 在线接受付款涉及什么?
- 27. 如何在涉及两个表时检查是否存在行?
- 28. SQL:对于每一行,检查涉及该行的
- 29. 如果方法没有进行类型检查,为什么C++模板匹配?
- 30. 在说明涉及泛型
恐怕“在编译器阶段Idris只能在类型中执行模式匹配”这句话是不正确的。举个例子,'(Int 3) - 2 = 1',你可以用'Refl'来证明它,尽管'Int'不是一个归纳数据类型。正如你已经解释过的,'Refl'不能用'mod'的原因是偏袒的。 –