容器中有什么东西可以让我获得Data.Set的子集吗?

ben*_*nji 1 containers haskell

我找不到任何给定min和max的函数返回容器中任何结构的该间隔中的所有值.肯定有......?

Lee*_*Lee 6

inRange :: Ord a => a -> a -> Set a -> Set a
inRange min max s = fst $ S.split max gt
  where (_, gt) = S.split min s
Run Code Online (Sandbox Code Playgroud)

  • 你甚至可以做`fst.S.split max.snd.S.split min`并且只使用1行. (2认同)
  • @ user3217013 [split](http://hackage.haskell.org/package/containers-0.5.5.1/docs/Data-Set.html#v:split)是O(lg n).fst和snd是O(1). (2认同)