On 28 Jan 2010, at 03:09, Twan van Laarhoven wrote:

For example, in Map String Integer (sparse representation of monomials) compute the minimum value of all associative pairs with the same key (the gcd); if only one key is present, the absent should be treated as having value 0. So
 unionWith min xs ys
will not work, because unionWith will always apply the identity to the remaining value when one key is missing, whereas it should be sent to 0.

If missing keys represent 0, then wouldn't this work?

   intersectionWith min xs ys

Yes, that works for the gcd function using min. Thank you - this function is used a lot, so it is good to have it simple.

For the general problem, one still needs a better interface. For (-), though missing keys represent 0, if the first is missing, the second should be negated. And if both are present, one should filter out keys with 0 value. Right now, this is a combination of negate, (+), and filter (/= 0).

  Hans


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to