如果我們做 let add a b = a+b
然後add :: Num a => a -> a -> a
。我們如何知道類型類是否是另一個類型類的子類?
我們也知道1.5 :: Fractional a => a
。 和add 1 1.5
完美無瑕。
如果我理解正確的每一個具有Fractional
實例的類型也有一個Num
的實例,但是這個事實是如何明確的?
如果我們做 let add a b = a+b
然後add :: Num a => a -> a -> a
。我們如何知道類型類是否是另一個類型類的子類?
我們也知道1.5 :: Fractional a => a
。 和add 1 1.5
完美無瑕。
如果我理解正確的每一個具有Fractional
實例的類型也有一個Num
的實例,但是這個事實是如何明確的?
重要提示:Haskell沒有「子類型類型」,它只是檢查「Fractional」的所有實例是否遵守類上下文,在這種情況下表示子類型類關係。這不是一個特殊的語法,只是一個有用的習慣用法。 – Lazersmoke
你能解釋「這個事實是如何明確的?」更好?你究竟是什麼意思? – niceman