这个功能:
hola :: (Integral a) => a -> String
hola 1 = "OK"
hola _ = "asdf"
工作正常。但是这个:
hola :: (Num a) => a -> String
hola 1 = "OK"
hola _ = "asdf"
无法编译:“无法从文字 '1' 推导出 (Eq a)”
我真的不明白。我正在阅读一个教程,上面说
“Integral 也是一个数字类型类。Num 包括所有数字,包括实数和整数,Integral 仅包括整数(整数)数。在这个类型类中是 Int 和 Integer。” http://learnyouahaskell.com/types-and-typeclasses
为什么我不能使用 Num?