
a) you can generate c++ with it :) (but don't tell it. it may be regarded as offense) b) - c) - d) stop debugging, you don't need it that much in haskell. But you need profiler. If they really want to print something in pure function you can show them function 'trace', from Debug.Trace e) I don't think that C++ people think that types are bad. If they do you can tell (beside the types don't let you mess up to much and stimulate clarity and documentation) about how easy is to do refactoring in typed language. f) You can show them Atom [1]. 5k Haskell code generates 20k C-code and it all works in real time in real trucks. Or Copilot. It's going to be used in airplanes. 4. I think it's bad idea. It's better to start with examples. What really strikes me about haskell is the simplicity of data types. I think the best way to start is to show Booleans, then lists, then Trees. It's so simple and beautiful You can say. Do you really need to know anything about syntax to understand this: data Bool = False | True or this data Time = Time Hour Minute Second or this data List a = Nil | Cons a (List a) and you can say that it is not built in. You can define it yourself and it works as fast as any other data type (or as slow). You can stress the idea of haskell data types is haskell UML. Don't show definitions just show them types like this: not :: Bool -> Bool and :: Bool -> Bool -> Bool reverse :: [a] -> [a] map :: (a -> b) -> [a] -> [b] then you can show definitions and say about pattern matching. It is very intuitive. [1] http://hackage.haskell.org/package/atom