带有haskell的k维Ord类型类
发布时间:2022-02-22 02:51:35 404
相关标签:
我想实现一个函数,它包含两个对象,我只想知道这些对象,它们可以被认为是向量,我想比较相应的字段。(无论字段及其类型如何)
所以我想实现polymothic函数c,它有两个相同多态类型的值,每个值有N个字段,相应的字段有相同的类型,而且所有字段都是Ord的实例。所以我想比较相应的字段,并建立一个布尔值列表
c :: KD o => o -> o -> [Bool]
c o1 o2 = (\n -> (kth o1 n) == (kth o2 n) ) <$> [1..dimensions o1]
class KD c where
dimensions :: c -> Int
kth :: (Ord ?) => c -> Int -> ?
-- for example pair can be used as object with 2 dimensions
instance (Ord a, Ord b, Show a, Show b) => KD (a,b) where
dimensions _ = 2
kth (a,_) 1 = undefined -- "I want a here"
kth (_,b) 2 = undefined -- "I want b here"
我对KD typeclass和实例实现感到厌倦,如何在Haskell中实现这一点?
另外,我正在考虑将每个对象映射到一个整数列表,然后处理比较整数,但我不知道我能不能为任何类型(如字符串、列表等)实现这样的映射。。
class KDI c where
map_ :: c -> [Integer]
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报