Skip to content
This repository was archived by the owner on Oct 4, 2020. It is now read-only.

Commit e3d0ddb

Browse files
committed
Changes per @hdgarrood's comments
1 parent 6620634 commit e3d0ddb

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

src/Data/Map.purs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -381,9 +381,10 @@ fromFoldableWith f = foldl (\m (Tuple k v) -> alter (combine v) k m) empty where
381381
combine v (Just v') = Just $ f v v'
382382
combine v Nothing = Just v
383383

384-
-- | Convert a map to a list of key/value pairs
384+
-- | Convert a map to a list of key/value pairs.
385+
-- | DEPRECATED: use toUnfoldable or toAscUnfoldable instead.
385386
toList :: forall k v. Map k v -> List (Tuple k v)
386-
toList = toUnfoldable
387+
toList = toAscUnfoldable
387388

388389
-- | Convert a map to an unfoldable structure of key/value pairs
389390
toUnfoldable :: forall f k v. Unfoldable f => Map k v -> f (Tuple k v)

test/Test/Data/Map.purs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ mapTests = do
166166
in M.lookup k tree == Just v <?> ("instrs:\n " <> show instrs <> "\nk:\n " <> show k <> "\nv:\n " <> show v)
167167

168168
log "Singleton to list"
169-
quickCheck $ \k v -> M.toList (M.singleton k v :: M.Map SmallKey Int) == singleton (Tuple k v)
169+
quickCheck $ \k v -> M.toUnfoldable (M.singleton k v :: M.Map SmallKey Int) == singleton (Tuple k v)
170170

171171
log "fromFoldable [] = empty"
172172
quickCheck (M.fromFoldable [] == (M.empty :: M.Map Unit Unit)
@@ -190,17 +190,12 @@ mapTests = do
190190
quickCheck (M.lookup 1 nums == Just 2 <?> "invalid lookup - 1")
191191
quickCheck (M.lookup 2 nums == Nothing <?> "invalid lookup - 2")
192192

193-
log "sort . toList . fromFoldable = sort (on lists without key-duplicates)"
193+
log "sort . toUnfoldable . fromFoldable = sort (on lists without key-duplicates)"
194194
quickCheck $ \(list :: List (Tuple SmallKey Int)) ->
195195
let nubbedList = nubBy ((==) `on` fst) list
196-
f x = M.toList (M.fromFoldable x)
196+
f x = M.toUnfoldable (M.fromFoldable x)
197197
in sort (f nubbedList) == sort nubbedList <?> show nubbedList
198198

199-
log "fromFoldable . toList = id"
200-
quickCheck $ \(TestMap (m :: M.Map SmallKey Int)) ->
201-
let f m' = M.fromFoldable (M.toList m')
202-
in f m == m <?> show m
203-
204199
log "fromFoldable . toUnfoldable = id"
205200
quickCheck $ \(TestMap (m :: M.Map SmallKey Int)) ->
206201
let f m' = M.fromFoldable (M.toUnfoldable m' :: List (Tuple SmallKey Int))
@@ -317,5 +312,6 @@ mapTests = do
317312
quickCheck $ \(TestMap m :: TestMap String Int) -> let
318313
f k v = k <> show v
319314
resultViaMapWithKey = m # M.mapWithKey f
320-
resultViaLists = m # M.toList # map (\(Tuple k v) → Tuple k (f k v)) # M.fromFoldable
315+
toList = M.toUnfoldable :: forall k v. M.Map k v -> List (Tuple k v)
316+
resultViaLists = m # toList # map (\(Tuple k v) → Tuple k (f k v)) # M.fromFoldable
321317
in resultViaMapWithKey === resultViaLists

0 commit comments

Comments
 (0)