There is a text book _Discrete Mathematics and Functional Programming_ (VanDrunen) [1] which can be bought off Amazon for $60 new. (I bought a used copy when they were cheap, for <$30.) Its a great place to start.
There is an older version of the manuscript available if you scour Google.
Then there are also the videos that accompany the text book, which can be accessed by anyone. [2]
Because learning a language like ML is for the express purpose of thinking differently its likely beneficial to learn the language in a domain you might be unfamiliar with - possibly somewhat academically, instead of building an application from scratch. ("Oh I know how to solve this problem... I'll write an if-then-else statement with a bunch of branches!" vs. "Pattern matching in a case statement? List deconstruction and matching? This looks interesting.")
There is an older version of the manuscript available if you scour Google.
Then there are also the videos that accompany the text book, which can be accessed by anyone. [2]
Because learning a language like ML is for the express purpose of thinking differently its likely beneficial to learn the language in a domain you might be unfamiliar with - possibly somewhat academically, instead of building an application from scratch. ("Oh I know how to solve this problem... I'll write an if-then-else statement with a bunch of branches!" vs. "Pattern matching in a case statement? List deconstruction and matching? This looks interesting.")
1. http://www.amazon.com/Discrete-Mathematics-Functional-Progra... 2. http://cs.wheaton.edu/~tvandrun/dmfp/