Data.Unique.hashUnique
用于从一个值中获得一个几乎唯一Int
的Unique
值:
hashUnique :: Unique -> Int
#if defined(__GLASGOW_HASKELL__)
hashUnique (Unique i) = I# (hashInteger i)
#else
hashUnique (Unique u) = fromInteger (u `mod` (toInteger (maxBound :: Int) + 1))
#endif
为什么不Data.Unique
提供getUnique
获取真正唯一值的功能?
getUnique :: Unique -> Integer
getUnique (Unique i) = i
这是图书馆发展过程中的疏忽吗?我们可以在 Data.Unique 中添加这样的功能吗?在许多情况下,需要真正独特的值。