How overload operator in Haskell?
Wolfgang Jeltsch
wolfgang@jeltsch.net
Wed, 9 Jul 2003 17:40:01 +0200
On Wednesday, 2003-07-09, 17:11, CEST, Hal Daume wrote:
> What you want to do is make your Vector an instance of the Num(eric) type
> class.
It would be better to define one's own operators instead of using + and -
because Vector has no meaningful instance of Num (as Jerzy Karczmarczuk
already pointed out). But maybe it's overkill to define a new class if you
don't want the same operators for other types.
> For instance:
>
> instance Num Vector where
> (+) v1 v2 = zipWith (+) v1 v2
> (-) v1 v2 = zipWith (-) v1 v2
You can also use the nice infix syntax in definitions (as you already did with
your `vadd` and `vsub`):
v1 + v2 = zipWith (+) v1 v2
v1 - v2 = zipWith (-) v1 v2
> [...]
Wolfgang