【发布时间】:2020-05-27 23:11:14
【问题描述】:
在 Type-Driven Development with Idris,第 6 章中,他说
- 类型级函数只存在于编译时 ...
- 只有总计的函数才会在类型级别进行评估。不完全的函数可能不会终止,或者可能不会覆盖所有可能的输入。因此,为了确保类型检查本身终止,不完全的函数在类型级别被视为常量,并且不会进一步评估。
我很难理解第二个要点的含义。
- 类型检查器如何声明代码类型检查是否存在其签名中不完全的函数?根据定义,不会有一些未定义类型的输入吗?
- 当他说恒定时,他的意思是否与the docs 中的意思相同,比如
是一个常数?如果是这样,那如何使类型检查器完成其工作?one: Nat one = 1 - 如果一个类型级函数仅在编译时存在,如果它不是全部,它是否会被评估?如果不是,它的用途是什么?
【问题讨论】:
标签: typechecking idris