Functional Programming … Erlang is a decent gateway drug and Haskell is definitely the hard stuff.
FutureLearn is running another round of the University of Glasgow MOOC (massive open online course) Functional Programming in Haskell: Supercharge Your Coding starting 2017-09-18.
The course runs for 6 weeks - this is basically the time period during which course participants interact with each other through a content commenting system in order to aid each other’s understanding of the course material.
Course participation and content is available for free for the first 8 weeks - a fee of US$79 is required to extend access beyond that time period - it also unlocks any tests that are necessary to earn a “Certificate of Achievement”.
This course could be of interest to anyone who has some basic understanding of functional programming through working with Elixir (or Functional Programming in Erlang) but wishes to further reinforce their functional programming skills, especially in a statically typed language - even if you have a relatively small chance of using Haskell “in production” in the short term.
On OS X there is also Haskell for Mac IDE - Learn functional programming with Haskell available for purchase (US$24.99) on the App Store (and therefore is sandboxed!)
Haskell Programming from first Principles could serve as a supplement/alternative. See also An Outsider’s Guide to Statically Typed Functional Programming.
Back to the course:
Get an introduction to Haskell, the increasingly popular functional programming language, with this University of Glasgow course.
####Why join the course?
Do you want to develop software using the latest programming language paradigm? Haskell is a functional programming language, based on formal mathematical principles. As such, it is easy to reason about and develop, and it executes efficiently on modern multicore machines. From investment banks to social networks, everyone is adopting Haskell.
####Get an introduction to functional programming in Haskell
On this introductory course, you will discover the power, elegance and simplicity of functional programming in Haskell. By the end, you will be able to:
characterise the differences between imperative and functional programming paradigms;
implement small-scale functional programs in elementary Haskell;
apply standard combinators for operating on lists;
create new algebraic data types and use recursion to define functions that traverse recursive types; and reason in a mathematical manner about data types, functions, recursion and similar functional constructs.
####Learn with developers from the birthplace of Haskell
This course has been created by the School of Computing Science at the University of Glasgow – the virtual birthplace of the Haskell language, where many of its original developers worked. It will give you the opportunity to learn with these experts and join the growing, global community of Haskell programmers.
####What topics will you cover?
- Evaluation via expression reduction
- Semantics of function abstraction and application
- Operations involving basic types including integers, characters and booleans
- Definition and traversal of recursive data types including lists and trees
- Techniques for structuring programs of non-trivial size
- Developing custom parsing tools with library support
- Automated testing with the QuickCheck tool
- Infinite data structures and lazy evaluation
- Type classes
- Principles of Lambda calculus