我正在编写一个网络处理程序,遇到了一些麻烦。我决定将我的有向图实现为弧链表的“Judy Array”。那就是
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 中的指针。任何智慧都将不胜感激。也许我应该只使用数组,但我担心我的数据集非常大(未压缩的 1 TB,尽管其中很多数据是无关的)并且说服自己在(诚然是固态)驱动器上进行额外的读/写操作可能会严重减慢这一速度。不过我不知道。