chris webster wrote:Short answer? I don't know, but I've decided not to worry about it!
Long answer? Well, there seems to be a whole industry around explaining monads to functional programmers. My limited understanding is that it's a set of rules for functional behaviour, a bit like an OO pattern but based on mathematical theory. If your "foo" function obeys these rules then it's a monad and certain assumptions can be made about it e.g. about how you can combine it with other functions. I think one common use of monads is to encapsulate functions that mutate state so you know when your code may have side effects. So monads (and monoids) occur in other functional programming languages, not just Scala, because they all need to manage state changes in a controlled fashion.
But don't rely on my vague ramblings - this guy can explain it all much better:
http://channel9.msdn.com/Shows/Going+Deep/Brian-Beckman-Dont-fear-the-Monads
then sat there scratching my head and wondering why I would choose this over e.g. the Eclipse-based Scala IDE?
Roger Sterling wrote:
Nishan Patel wrote: big and well known companies like twiter, linkedin, the guardian etc using Scala as their production.
Do you have a source for this information? Twitter has three 'T's. What do you mean by "using Scala as their production" ? Are you implying that their entire production systems are run using Scala ? Without references to hard facts like well-known publications to cite in support of your claim, its seems like a bunch of hot air. Do you mean to say that their development and quality assurance systems are using something other than Scala ?