[m-dev.] map.merge
Julien Fischer
juliensf at csse.unimelb.edu.au
Wed Jul 12 15:01:13 AEST 2006
On Mon, 10 Jul 2006, Ian MacLarty wrote:
> The documentation of map.merge says:
>
> % For map.merge(MapA, MapB, Map), MapA and MapB must not both
> % contain the same key.
> %
> :- func map.merge(map(K, V), map(K, V)) = map(K, V).
> :- pred map.merge(map(K, V)::in, map(K, V)::in, map(K, V)::out) is det.
>
> However it doesn't say what happens if they do have the same key. I
> investigated and it appears that map.merge won't throw an exception if
> the same key appears in both maps, but will set the corresponding value
> to the greatest value from the two maps. Wouldn't it be more
> appropriate to throw an exception?
I would say yes, unless it adversly affects the performance of map.merge.
Julien.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to: mercury-developers at csse.unimelb.edu.au
Administrative Queries: owner-mercury-developers at csse.unimelb.edu.au
Subscriptions: mercury-developers-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the developers
mailing list