可能这是基本的,但我不明白为什么下面的函数回答 1fnc Nat并且,对于fnc 整数,它甚至没有作为模式包含在内。
fnc : Type -> Integer
fnc Bool = 1
fnc Nat = 2
您不能对类型进行模式匹配,也不应该这样做。当我编译你的代码时,我收到下一个错误:
warning - Unreachable case: fnc Nat
这一点之前已经讨论过了:
- 老讨论了。 https://groups.google.com/forum/#!msg/idris-lang/L8cyD9YkSRU/lnzNppxxhhsJ
- 一些类似的问题。 https://stackoverflow.com/questions/36553856/how-to-compare-types-for-equality
- GitHub 上有一些类似的问题。 https://github.com/idris-lang/Idris-dev/issues/2075
UPDATE:
终于找到了更相关的问题和答案:
为什么打字是一件坏事? https://stackoverflow.com/questions/23220884/why-is-typecase-a-bad-thing
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)