>  (...)  I don't recall where I found the following example, but copied
> it locally as compelling evidence  that the functional solution can be
> much clearer and  shorter than the same solution  modeled with objects
> and inheritance.

Greg,

I desagree with you.  Bjarne Stroustrup, the original creator of C++, is
a sensible person and I share his peacefull opinion in this matter:

http://www.research.att.com/~bs/bs_faq.html#compare

Even with good  intentions, I've never seen such  kind of comparison not
to fall into religious fights. (Although I'm not more than just a humble
language user.)

> -- Arithmetic expression forms data Expr = Num Int | Add Expr Expr
>
> -- Evaluate expressions
> eval :: Expr -> Int
> (...)

> public abstract class Expr {
>    public abstract int eval ();
>    public abstract void modn(int v);

Although I'm not good enough to judge anyone's Haskell code, the Haskell
version  seems nice.  I  don't  know how  someone  who understands  well
object-oriented code  would do  that. But I  did C++ until  around 1998,
when the first standard was set, and  I can tell you for sure that, even
at that  time, no one who  knows at least  the basics of C++  would ever
write that problem like this.

Best,
Maurício

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to