我正在嘗試製作一些Haskell類型,這些類型不是通過類型而是通過類型的元素(特別是整數)進行參數化。例如,R^2中的(線性代數)向量和R^3中的向量是不同類型的對象。具體來說,我正在Haskell編寫一個K-D樹,我想用正整數參數化我的數據結構,因此三維樹和四維樹具有不同的類型。在Haskell中使用整數參數化類型
我試圖通過元組來參數化我的樹,但它似乎沒有去任何地方(似乎有點不太可能這可以通過,特別是因爲它似乎並不是三倍或更大的東西甚至函子(我不知道有什麼辦法說喜歡,例如HomogeneousTuple 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
一個側面說明,你可能會對一些關於依賴類型的文獻感興趣,它是從值到類型的更一般的函數:我喜歡http://www.cse.chalmers.se/~peterd /papers/DependentTypesAtWork.pdf –
感謝Amos,這似乎是我可以使用的東西 –