Just +containers
O(log(min(i,n-i))). Update the element at the specified position. If the position is out of range, the original sequence is returned.
O(min(n,W)). Adjust a value at a specific key. When the key is not a member of the map, the original map is returned.
> adjust ("new " ++) 5 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "new a")]
> adjust ("new " ++) 7 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "a")]
> adjust ("new " ++) 7 empty == empty
O(log n). Update a value at a specific key with the result of the provided function. When the key is not a member of the map, the original map is returned.
> adjust ("new " ++) 5 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "new a")]
> adjust ("new " ++) 7 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "a")]
> adjust ("new " ++) 7 empty == empty
O(min(n,W)). Adjust a value at a specific key. When the key is not a member of the map, the original map is returned.
> let f key x = (show key) ++ ":new " ++ x
> adjustWithKey f 5 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "5:new a")]
> adjustWithKey f 7 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "a")]
> adjustWithKey f 7 empty == empty
O(log n). Adjust a value at a specific key. When the key is not a member of the map, the original map is returned.
> let f key x = (show key) ++ ":new " ++ x
> adjustWithKey f 5 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "5:new a")]
> adjustWithKey f 7 (fromList [(5,"a"), (3,"b")]) == fromList [(3, "b"), (5, "a")]
> adjustWithKey f 7 empty == empty