To quote Wikipedia "OCaml unifies functional, imperative, and object-oriented programming under an ML-like type system. Thus, programmers need not be highly familiar with the pure functional language paradigm to use OCaml. "
The language has some other compelling advantages (eg mature libraries and development tools, rapid compilation to fast-running binary executables, being bankrolled by a successful algo-trading fund). And French MOOC platform FUN offers a free (including cert!) MOOC - in English - now in it's third iteration, with in-browser complilation/execution/grading. What's not to like?
So, after dabbling in the shallows of functional programming in Python, I thought I'd try venturing into OCaml's deeper waters. And they're deep. Over the two (of six) weeks I've stuck with this MOOC, I've seen some very interesting things - most notably a totally different take on 'variables' (they don't change) and variable scoping (still lexical, but... different), and the power of OCaml's type inference system.
But I've really struggled to get things - the toy programs in this introductory part of an introductory course - to work, so I'm dropping out. The alienness of ML - conceptually, syntax-wise and to some extent in terms of the vocabulary used to describe concepts - is definitely the main factor. But despite having already run several times, this MOOC itself still has its rough corners: a bit of disconnect between the lectures and exercises, sometimes less-than-clear instructions & the odd downright error. It's far from a bad MOOC, but thanks to OCaml's alienness, & my own not-particularly strong coding skills, it doesn't offer a good enough time & effort/learning payoff ratio.
So, merci et so long FUN! Maybe I'll try riding the OCaml next time...