# About This Document
Functional Programming is now part of the A level curriculum. This document is intended to get those who already have some programming experience in an imperative language (such as Python or Java) up and running in Haskell, one of the functional languages recommended by AQA specification 7517.
## Important!
Please note, if you have no experience of programming, then this document is not for you. Try learning an imperative language such as Python first.
This is far from being a full course in Haskell, it's purely intended to get you through the A level syllabus. Many important features of Haskell are omitted, the most important being how Haskell handles types - you'll need to learn about these if you want to learn Haskell properly. A good place to start is [http://learnyouahaskell.com/](http://learnyouahaskell.com/) by Miran Lipovaca
# The Course
1. [[Getting Started]]
2. [[Lists]]
3. [[A Brief Diversion - List Comprehensions and Ranges]]
4. [[More on Functions]]
5. [[Higher Order Functions]]
6. [[Beyond the AQA Specification]]
7. [[Recursive Functions in Haskell]]
8. [[Haskell Recursion Problems]]
9. [[Putting it All Together]]