也许这很基础,但我不明白为什么下面的函数对于fnc Nat和fnc Integer都回答1,即使后者甚至未包括在模式中。
fnc : Type -> Integer
fnc Bool = 1
fnc Nat = 2
也许这很基础,但我不明白为什么下面的函数对于fnc Nat和fnc Integer都回答1,即使后者甚至未包括在模式中。
fnc : Type -> Integer
fnc Bool = 1
fnc Nat = 2
你不能对类型进行模式匹配,也不应该这样做。当我编译你的代码时,会收到下一个错误:
warning - Unreachable case: fnc Nat
这个问题之前已经讨论过:
更新:
最终找到了一个更相关的问题和答案:
实际上,您现在可以在Idris 2中执行此操作:
fnc : Type -> Integer
fnc Bool = 1
fnc Nat = 2
fnc _ = 3