Difference Argument Order
Henning Thielemann
lemming at henning-thielemann.de
Mon May 23 05:27:45 EDT 2005
On Sun, 22 May 2005 ajb at spamcop.net wrote:
> Quoting Ashley Yakeley <ashley at semantic.org>:
>
> > 2. This one is more familiar for the English language and for the
> > standard operators:
> >
> > add :: Absolute -> Diff -> Absolute
> > add a d = a + d
> > subtract :: Absolute -> Diff -> Absolute
> > subtract a d = a - d
> > diff :: Absolute -> Absolute -> Diff
> > diff a b = a - b
>
> But even better would be if you could do both, and not distinguish between
> subtract and diff:
I assume that these function are for computations like
subtract :: DegreeCentigrade -> Kelvin -> DegreeCentigrade
diff :: DegreeCentigrade -> DegreeCentigrade -> Kelvin
and the intentions are different enough to implement distinct functions.
I assume that there will be an implementation for 'diff' whenever there is
one for 'subtract' and vice versa, thus considering them as different
instances of the same class does not seem to be a good design.
More information about the Libraries
mailing list