我正在尝试制作一些Haskell类型,它们不是通过类型而是通过类型的元素来参数化的,特别是整数。例如,R^2中的(线性代数)向量和R^3中的向量是不同类型的对象。具体地说,我正在用Haskell编写一棵K-D树,我想用一个正整数来参数化我的数据结构,这样一棵3-D树和4-D树就具有不同的类型。我想做这样的事情:
data (TupleOfDoubles a) => KDTree a b = ...data KDTree Int
我试图为我的KdTree数据结构导出一个可折叠的实例。当我试图创建一个toList函数时,问题就发生了。toList :: KdTree BBox3 a -> [(BBox3,a)]当我试图编译时,我得到了这个错误 at Data/Trees/KdTree/Regions/KThree/KThreeTree.hs:1
我想使用KdTree机箱从这些点创建一个kd树。以下示例位于KdTree文档中:
let mut kdtree = KdTree::new(dimensions);cannotinfer type for type parameter `A`
consider giving `tree` the explicit type `kdtree::kdtree::KdTree<A