[Haskell-cafe] strange stack overflow with Data.Map
David Menendez
zednenem at psualum.com
Tue Jan 3 23:16:08 EST 2006
Christian Maeder writes:
> Adrian Hey wrote:
> > You mean am I proposing that Maps should retain old association
> > values and discard the new ones? If so the answer is no, of course
> > not.
>
> Actually, for maps it makes (even more) sense to have an additional
> "insert-only-if-not-member" function, and be it only for (defining)
> "fromList". Maybe such a function should simply be called "add" to
> encourage its use.
>
> {- | insert pair only if key is not a member yet (left-biased) leave
> map unchanged otherwise. -}
> add :: Ord a => Map a b -> a -> b -> Map a b
>
> Properties:
>
> insert k v m = add (delete k m) k v
>
> add m k v = if member k m then m else insert k v m
Or, add m k v = insertWith (\_ oldV -> oldV) k v m
--
David Menendez <zednenem at psualum.com> | "In this house, we obey the laws
<http://www.eyrie.org/~zednenem> | of thermodynamics!"
More information about the Libraries
mailing list