我正在写一个网络处理程序,遇到了一些麻烦。我决定把我的有向图实现为弧的链表的朱迪数组。那就是
JudyL [Arc]
字符串
其中,
type Id = Int
type Day = Int
data Arc = Arc { aid :: Id,
time :: Day} deriving (Eq, Show)
型
然而,Judy数组要求它们的输入可以转换为Word值,或者一个字大小的指针。
instance JE [a] where
toWord :: [a] -> IO Word
fromWord :: Word -> IO [a]
型
然而,我不知道如何处理Haskell中的指针。任何智慧都将受到极大的赞赏。也许我应该使用数组,但我担心我的数据集非常大(未压缩的TB,尽管很多数据是无关的),并且说服自己在(公认的固态)驱动器上进行额外的读/写可能会严重减慢速度。IDK虽然。
1条答案
按热度按时间sy5wg1nm1#
您可以复制并粘贴
ByteString
示例,这实际上是分配一个新的StablePtr
,然后将其强制转换为Word
。请记住,当(如果)时间到来时,您将需要自己进行释放。