所以我在Haskell做了一些运动,我认为int2nat的类型
int2nat :: (Eq t, Num t) => t -> Nat
int2nat 0 = Zero
int2nat n = Succ (int2nat (n-1)会是int2nat :: (Num t) => t -> Nat。
有人能解释为什么不是这样,为什么额外的Eq t是正确的呢?
发布于 2022-01-01 19:37:50
因为您在模式中的数字文本0上匹配。int2nat 0 = Zero去做int2nat n | n == fromInteger 0 = Zero之类的东西。
https://stackoverflow.com/questions/70551256
复制相似问题