Taking a class just to learn a language is a bit dodgy, but Haskell is probably a forgivable exception.
Taking a class just to learn a language is a bit dodgy, but Haskell is probably a forgivable exception.
I think the main advantage of a course at Stanford is access to the instructors. Sure, I could just read Real World Haskell and do all the exercises, but with the course I have a space where I can directly talk to Brian or David at least once a week if I have questions.
Hopefully they cover the theory behind Haskell as much as the practical side of it.
Monads can be formulated in any language with first-class functions. Monadic I/O is more distinctively Haskellish, and of course Haskell has syntactic sugar to make using them easier, but as a tool and a concept they're far from unique to Haskell.
Yes, though they only really make sense if you also have static typing, and polymorphism by return type also helps.