[Haskell-cafe] Typeclasses vs simple functions?

John Dorsey haskell at colquitt.org
Tue Sep 15 10:20:00 EDT 2009


> perimeter :: Geometry -> Double
> perimeter (Sphere _ r) = 0.0
> perimeter (Circle _ r) = 2.0 * pi * r
> 
> The latter is even simpler because there is no need in extraction of Double
> value from Maybe.

I'd strongly advise against this last one on style grounds.  (0 :: Double)
isn't nearly as suitable as a distinguished value indicating an invalid
result as Nothing.  It can be made to work, in the same way that you can
write complex code in asm; instead, use a solution that gives you
type-level help in getting it right.  I'd use Maybe.

Regards,
John



More information about the Haskell-Cafe mailing list