inRange :: Ord a => a -> a -> Set a -> Set a
inRange min max s = fst $ S.split max gt
where (_, gt) = S.split min s
Is there anything in containers that allows me to get a subset of Data.Set?
-
27-06-2023 - |
Question
I cannot find any functions that given a min and a max return all the values in that interval for any of the structures in containers. Surely there must be...?
La solution
Autres conseils
You can write this really easily with Data.Set.filter
:
import Data.Set (Set)
import qualified Data.Set as S
between :: Ord a => a -> a -> Set a -> Set a
between min_ max_ = S.filter (\x -> min_ <= x && x <= max_)
Then you can use it as
> between 3 7 $ S.fromList [1..10]
fromList [3, 4, 5, 6, 7]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow