7
下Haskell的類型類和實例:斯卡拉VS哈斯克爾類型類:「包羅萬象」的情況下
class Able a where
able :: a -> Int
instance Able Int where
able x = x
通常翻譯爲斯卡拉,像這樣:
trait Able[A] {
def able(a: A): Int
}
implicit object AbleInt extends Able[Int] {
def able(a: Int) = a
}
在Haskell我現在可以定義排序從而爲所有可能的類型創建一個實例:
instance Able a => Able (Maybe a) where
able (Just a) = able a
able Nothing = 0
這定義了一個instanc爲Maybe Int
,Maybe Bool
等Able
E中提供有對Int
,Bool
實例Able
等
一個會怎麼做,在Scala呢?
巧妙!非常感謝你 :) – scravy