This repository was archived by the owner on Oct 4, 2020. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +13
-2
lines changed Expand file tree Collapse file tree 3 files changed +13
-2
lines changed Original file line number Diff line number Diff line change 4848
4949 singleton :: forall k v. k -> v -> Map k v
5050
51+ size :: forall k v. Map k v -> Number
52+
5153 toList :: forall k v. Map k v -> [Tuple k v]
5254
5355 union :: forall k v. (P.Ord k) => Map k v -> Map k v -> Map k v
Original file line number Diff line number Diff line change @@ -23,7 +23,8 @@ module Data.Map
2323 values ,
2424 union ,
2525 unions ,
26- map
26+ map ,
27+ size
2728 ) where
2829
2930import qualified Prelude as P
@@ -237,3 +238,6 @@ unions = foldl union empty
237238
238239map :: forall k a b . (a -> b ) -> Map k a -> Map k b
239240map = P .(<$>)
241+
242+ size :: forall k v . Map k v -> Number
243+ size = A .length P .<<< values
Original file line number Diff line number Diff line change @@ -4,7 +4,7 @@ import Debug.Trace
44
55import Data.Maybe
66import Data.Tuple
7- import Data.Array (map )
7+ import Data.Array (map , length , nubBy )
88import Data.Function (on )
99import Data.Foldable (foldl )
1010
@@ -165,3 +165,8 @@ mapTests = do
165165
166166 trace " Union is idempotent"
167167 quickCheck $ \m1 m2 -> (m1 `M.union` m2) == ((m1 `M.union` m2) `M.union` (m2 :: M.Map SmallKey Number ))
168+
169+ trace " size"
170+ quickCheck $ \xs ->
171+ let xs' = nubBy ((==) `on` fst) xs
172+ in M .size (M .fromList xs') == length (xs' :: [Tuple SmallKey Number ])
You can’t perform that action at this time.
0 commit comments