有没有办法使用Data.Set中的findIndex方法和当前的haskell平台?

时间:2013-11-17 14:14:21

标签: haskell extend haskell-platform

我最近开始研究一些需要使用集合的代码。所以我去了Hoogle并搜索了我在模块Data.Set中找到的现有解决方案。不幸的是,Hoogle打开了包含在containers-0.5.3.1包中的Set的文档。这个版本包含了方便的findIndex方法,我计划了我的程序。

但是Haskell平台只带有容器-0.5.0.0,其中findIndex不可用。因为我可能只使用Haskell平台附带的库,所以我正在寻找一种方法来包含这个函数或者自己定义它。直接从http://hackage.haskell.org/package/containers-0.5.3.1/docs/src/Data-Set.html复制方法源代码显然不起作用。我希望你能帮助我找到解决问题的方法。

非常感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用splitMember

执行此操作
lookupIndex :: (Ord a) => a -> Set a -> Maybe Int
lookupIndex x s
   | found      = Just $ size l
   | otherwise  = Nothing
 where (l, found, _) = splitMember x s