There are an SVM, a simple decision tree and a logistic regression in OCaml. You can implement them to have a feeling of how machine learning models can be built in OCaml.
You can also try Owl library for scientific and numeric computations in OCaml.
F# is a new .Net language similar to OCaml. Check out this factor graph model written in F# for analyzing Chess play data. This research also has a NIPS publication.
FP is also suitable for implementing machine learning and data mining models. FP supports parallel computing better than imperative languages, like C# or Java. But implementing a parallel SVM, or decision tree has very little language dependency. The numerical optimizations behind machine learning and data mining are usually crucial, to write them pure-functionally is usually hard and less efficient. If you want to run 100 SVMs in parallel, then FP can help easily. But I don't see the difficulty running 100 libsvm parallel in C++, not to consider that the single thread libsvm is more efficient than a not-well-tested Haskell SVM package.
FP languages usually have a top-level interpreter, you can test your functions on the fly.
I hope this answer helps.
Also, if you are willing to indulge in a comprehensive course on it then you can join an online machine learning course.