6
Aşağıdaki gibi bazı kullanıcı tanımlı türler için Eq tipinde yazım denetimi nasıl çalışır? Int veya Float gibi şeyler için bir uygulama yazmak basit. Ancak, tüm olası kullanıcı yapıcılara karşı desen eşlemesi gibi şeyler yapması gerekeceği için, tüm kullanıcı türleri için catchall nasıl yapılır? Bunu yapmak için herhangi bir sözdiziminin farkında değilim.Eq typeclass kullanıcı tanımlı türler için nasıl uygulanır?
data Person = Person { firstName :: String
, lastName :: String
, age :: Int
} deriving (Eq)
: GHCi çok –
Ah ayarlanan -ddump-deriv' o örneği kodunu üretir böylece bir dosyaya kodunuzu koymak ve eğer Örneğin,
-ddump-deriv
ileghc
çalıştırın burada ne olsun Özellikle kişi tipi için. Yanlış yazılmış bazı kodların kullanıldığı izlenimindeyim. Fakat örnek kodun nasıl oluşturulacağını nasıl biliyor? Bu Haskell'in içine mi fırladı? – user782220@ user782220 Temel olarak evet, fırında pişiriliyor. Bu nedenle, yalnızca türetmeyi belirli tür sınıflarıyla kullanabiliyorsunuz. Herhangi bir tür için çalışabilecek olası bir Haskell kodu yoktur, bu nedenle, türe özgü mantığa ihtiyacınız vardır (bu yüzden eşitlik, bir polimorfik fonksiyon değil, tip sınıfı bir işlevdir). GHC, “bariz” Eq ”örneğini (* bu tür bir örneğe sahip olan herhangi bir tür) oluşturmak için mantık içerir. – Ben