2017-04-02 9 views
2

すれば let add a b = a+b そしてadd :: Num a => a -> a -> aです。typeclassが別のtypeclassのサブtypecassであるかどうかをどのように知ることができますか?

また、1.5 :: Fractional a => aも知っています。 add 1 1.5は問題なく動作します。

インスタンスがFractionalのすべてのタイプが正しく理解されている場合は、Numのインスタンスもありますが、この事実はどのように明示されていますか?

+0

「この事実はどのように明示されていますか?より良い?どういう意味 ? – niceman

答えて

9

それはFractionalクラスの定義である:

class Num a => Fractional a where 
    ... 

あなたはそれがGHCiの中:i Fractionalを入力、またはHaddock docs上で見ることができます。

+0

注意事項:Haskellには "サブタイプメッシュ"がありません。クラスのコンテキストに従うことを単にチェックします。この場合、サブクラスのような関係が表現されます。これは特別な構文ではなく、便利なイディオムです。 – Lazersmoke

関連する問題