我正在尝试创建一些Haskell类型,它们不是由类型参数化,而是由类型的元素参数化,具体来说,是整数。例如,R ^ 2中的线性代数向量和R ^ 3中的向量是不同的类型对象。具体来说,我正在用Haskell编写一个K-D树,我想通过正整数对我的数据结构进行参数化,因此3-D树和4-D树具有不同的类型。
我尝试使用元组对我的树进行参数化,但好像没有效果(特别是因为似乎三元组或更大的元组甚至都不是函子(我不知道如何表达类似于实例HomogeneousTuple a => Functor a的方法)。我想做这样的事情:
这将很好,或者类似这样的东西也同样不错。
我尝试使用元组对我的树进行参数化,但好像没有效果(特别是因为似乎三元组或更大的元组甚至都不是函子(我不知道如何表达类似于实例HomogeneousTuple a => Functor a的方法)。我想做这样的事情:
data (TupleOfDoubles a) => KDTree a b = ... ---so in a 3DTree a is (Double,Double,Double)
这将很好,或者类似这样的东西也同样不错。
data KDTree Int a = ... -- The Int is k, so KDTree has kind Int -> * -> *
有人知道这两个效果是否可行或合理吗?
谢谢 - Joseph