以fromIntegral
函数:
fromIntegral :: (Integral a, Num b) => a -> b
检查是否:
Integral
Num
我们可以使用:info fromIntegral
来查找。
事实证明它是独立的。
但为什么呢?为什么它不能成为Integral
或Num
类型类(或其他类型类)的一部分?这有什么好的理由还是更多的品味?
这个例子的答案将帮助我在设计我自己的自定义类型类和函数时回答相同的问题。
答案 0 :(得分:9)
fromIntegral
定义为
fromIntegral = fromInteger . toInteger
这两个函数分别位于Num
和Integral
类中。当您在一个类中包含一个函数时,您说它可能会针对不同类型进行不同的定义。 fromIntegral
没有。