Haskell'de bir sınıf örneğini kolayca "kaldırmak" için bir yol var mı?Haskell'de kaldırma sınıfı örneği
Sık sık, örneğin oluşturulmasına gerek ettik, böyle tür kurucusu içinden sadece "kaldırma" Num yapısı olan bazı sınıflar için Num örnekleri:
data SomeType a = SomeCons a
instance (Num a)=>Num SomeCons a where
(SomeCons x) + (SomeCons y) = SomeCons (x+y)
negate (SomeCons x) = SomeCons (negate x)
-- similarly for other functions.
Bunu önlemek için bir yol var mı Bu Num yapısı otomatik olarak boilerplate ve "kaldır"? Ben genellikle mevcut olanları öğrenmek için çalışıyordum ve derleyici deriving(Show)
kullanmama izin vermezken Show ve diğer sınıflar ile bunu yapmak zorundayım.
Hum ... Bu newtype ile değil verileri ile çalışır Neden? –
Yeni bir tür herhangi bir kurucu veya alan ekleyemediğinden, yalnızca varolan bir türü siler. Bu, uzantının yalnızca herhangi bir veri türü için türetebileceğiniz sınıflar yerine herhangi bir sınıfla çalışabilmesini sağlar. – Martijn