从了解你是一个Haskell,我有:
lucky :: Integral a => a -> String
lucky 7 = "lucky number seven!"
lucky x = "try again"
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做的时候
lucky :: Num a => a -> String
lucky 7 = "lucky number seven!"
lucky x = "try again"
Run Code Online (Sandbox Code Playgroud)
我明白了
Could not deduce (Eq a) arising from literal `7'
Run Code Online (Sandbox Code Playgroud)
那么,我呢
lucky :: (Eq a, Num a) => a -> String
lucky 7 = "lucky number seven!"
lucky x = "try again"
Run Code Online (Sandbox Code Playgroud)
而且,编译器很高兴.
Num类不会"继承"Eq类吗?
说(Num a,Eq a)似乎是多余的.从Haskell 98报告中,他们有一个很好的图表(是的,视觉效果!)标准类,它确实看起来像是"继承的".http://www.haskell.org/onlinereport/basic.html