[Haskell-cafe] Re: map (-2) [1..5]

Henning Thielemann lemming at henning-thielemann.de
Mon Sep 11 10:59:50 EDT 2006


On Sun, 10 Sep 2006, Aaron Denney wrote:

> >> Of course, there's always a typeclass, where we could add all sorts of
> >> other encodings of the Peano axioms, such as binary trees,, but I don't
> >> see that that buys us much if we don't also get access to operations
> >> beyond them, such as (an _efficient_) `div` for fastexp.
> >
> > I don't see why Natural can't have an instance of whatever
> > class ends up owning “div”.  It's perfectly well behaved on
> > Naturals.
> 
> True.  It seems odd to have a multiplicative (pseudo) inverse, but
> not an additive, though.  Breaking up the numeric hierarchy too finely
> seems like it would be a pain -- take it to the limit of a
> separate class per function.  What else would you drag in with "div"?
> "mod", (*), ...?


from http://darcs.haskell.org/numericprelude/src/Algebra/Core.lhs :

> class (Num a) => Integral a where
>     div, mod :: a -> a -> a
>     divMod :: a -> a -> (a,a)
>
>     -- Minimal definition: divMod or (div and mod)
>     div a b = fst (divMod a b)
>     mod a b = snd (divMod a b)
>     divMod a b = (div a b, mod a b)


More information about the Haskell-Cafe mailing list