Haskell 我们如何知道一个typeclass是否是另一个typeclass的子typeclass?
如果我们这样做Haskell 我们如何知道一个typeclass是否是另一个typeclass的子typeclass?,haskell,Haskell,如果我们这样做 让我们添加一个b=a+b 然后add::Num a=>a->a->a 我们还知道1.5::分数a=>a。 而add11.5的工作原理是完美的 如果我正确理解了每一种类型,它有一个fractive的实例,也有一个Num的实例,那么这个事实是如何明确的呢?它在fractive类的定义中: class Num a => Fractional a where ... 您可以在GHCi中或在上看到它键入:i分数。您能更好地解释一下“这个事实是如何明确的”吗?你的确切意思是什么
让我们添加一个b=a+b
然后add::Num a=>a->a->a
我们还知道1.5::分数a=>a
。
而add11.5
的工作原理是完美的
如果我正确理解了每一种类型,它有一个
fractive
的实例,也有一个Num
的实例,那么这个事实是如何明确的呢?它在fractive
类的定义中:
class Num a => Fractional a where
...
您可以在GHCi中或在上看到它键入
:i分数。您能更好地解释一下“这个事实是如何明确的”吗?你的确切意思是什么?需要注意的是:Haskell没有“子类型类”,它只是检查fractive
的所有实例是否遵守类上下文,在本例中,类上下文表示类似子类型类的关系。它不是一种特殊的语法,只是一种有用的习语。