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

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

非常感谢!.

有帮助吗?

解决方案

你可以用 splitMember:

lookupIndex :: (Ord a) => a -> Set a -> Maybe Int
lookupIndex x s
   | found      = Just $ size l
   | otherwise  = Nothing
 where (l, found, _) = splitMember x s
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top