> (...) 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
