Bir tipin bir yazım tipinin parçası olması mümkün mü? Şunlar gibi:Haskell: Tipleri tanımlayabilir tipler (ala tip özellikleri)
class KeyTraits v where
keyType :: *
key :: v -> keyType
data TableRow = { date :: Date, metaData :: String, value :: Int }
instance KeyTraits TableRow where
keyType = Date
key = date
Bu "tip seviyesi" işlevleri başka yerlerde de kullanılabilir mi? Örneğin:
-- automatically deduce the type for the key, from the value type, using
-- the typeclass
data MyMap v = { getMap :: (KeyTraits v) => Map (keyType) v }
ben tamamen yanlış bir şey yapıyor olabilir, ama temelde yukarıda biri (örn Bazı değerler zaten Anahtar olarak kullanılabilecek veri olabilir) gibi tip ilişkileri tanımlama yeteneği istiyorum. Bu mümkün değilse veya zorsa, daha idiomatik olan daha iyi bir tasarım önerebilir misiniz?
Teşekkür ederiz!
Alternatif için çok teşekkürler! Diğer cevap soru başlığına daha doğrudan bağlı olsa da, çözümünüz de konuyla ilgili. –
MPTC + FD'nin karmaşık bağımlılıkları olan bazı uç durumlarda TF'den daha etkileyici olduğunu düşündüğüm izlenim altındaydım ... –