# HPM Education - Haskell

## HPM Education - Haskell

- [Introduction to Haskell](https://haskell.hpmeducation.com/master.md)
- [Functions](https://haskell.hpmeducation.com/introduction/functions.md)
- [Functional Programming vs Imperative Programming](https://haskell.hpmeducation.com/introduction/functional-programming-vs-imperative-programming.md)
- [Installing Haskell](https://haskell.hpmeducation.com/introduction/installing-haskell.md)
- [Haskell Modules](https://haskell.hpmeducation.com/introduction/haskell-modules.md)
- [Loading Modules into GHCi](https://haskell.hpmeducation.com/introduction/loading-modules-into-ghci.md)
- [Expressions](https://haskell.hpmeducation.com/introduction/expressions.md)
- [Laziness](https://haskell.hpmeducation.com/introduction/laziness.md)
- [Immutability](https://haskell.hpmeducation.com/introduction/immutability.md)
- [Introduction](https://haskell.hpmeducation.com/types-in-haskell/untitled.md)
- [Basic Types](https://haskell.hpmeducation.com/types-in-haskell/basic-types.md)
- [Static Type Check](https://haskell.hpmeducation.com/types-in-haskell/static-type-check.md)
- [Polymorphic and Overloaded Types](https://haskell.hpmeducation.com/types-in-haskell/polymorphic-and-overloaded-types.md)
- [Data Structure Types](https://haskell.hpmeducation.com/types-in-haskell/data-structure-types.md)
- [Lists](https://haskell.hpmeducation.com/types-in-haskell/data-structure-types/lists.md)
- [List Functions](https://haskell.hpmeducation.com/types-in-haskell/data-structure-types/lists/list-functions.md)
- [Tuples](https://haskell.hpmeducation.com/types-in-haskell/data-structure-types/tuples.md)
- [Function Types](https://haskell.hpmeducation.com/types-in-haskell/function-types.md)
- [Curried Functions](https://haskell.hpmeducation.com/types-in-haskell/function-types/curried-functions.md)
- [Partial Application](https://haskell.hpmeducation.com/types-in-haskell/function-types/partial-application.md)
- [The Layout Rule](https://haskell.hpmeducation.com/defining-functions-working-with-functions/the-layout-rule.md)
- [Local Definitions](https://haskell.hpmeducation.com/defining-functions-working-with-functions/local-definitions.md)
- [The Infix Operator](https://haskell.hpmeducation.com/defining-functions-working-with-functions/the-infix-operator.md)
- [Conditionals](https://haskell.hpmeducation.com/defining-functions-working-with-functions/conditionals.md)
- [If-then-else Statements](https://haskell.hpmeducation.com/defining-functions-working-with-functions/conditionals/if-then-else-statements.md)
- [MultiWayIf](https://haskell.hpmeducation.com/defining-functions-working-with-functions/conditionals/multiwayif.md)
- [Guarded Equations](https://haskell.hpmeducation.com/defining-functions-working-with-functions/conditionals/guarded-equations.md)
- [Case-of Statements](https://haskell.hpmeducation.com/defining-functions-working-with-functions/conditionals/case-of-statements.md)
- [Pattern Matching](https://haskell.hpmeducation.com/defining-functions-working-with-functions/pattern-matching.md)
- [Tuple Patterns](https://haskell.hpmeducation.com/defining-functions-working-with-functions/pattern-matching/tuple-patterns.md)
- [List Patterns](https://haskell.hpmeducation.com/defining-functions-working-with-functions/pattern-matching/list-patterns.md)
- [Lambda functions](https://haskell.hpmeducation.com/defining-functions-working-with-functions/lambda-functions.md)
- [Function Operators](https://haskell.hpmeducation.com/defining-functions-working-with-functions/function-operators.md)
- [List Comprehensions](https://haskell.hpmeducation.com/list-comprehensions/list-comprehensions.md)
- [Introduction](https://haskell.hpmeducation.com/higher-order-functions/introduction.md)
- [The map Function](https://haskell.hpmeducation.com/higher-order-functions/the-map-function.md)
- [The filter Function](https://haskell.hpmeducation.com/higher-order-functions/the-filter-function.md)
- [Introduction](https://haskell.hpmeducation.com/recursion/introduction.md)
- [4 Steps to Defining Recursive Functions](https://haskell.hpmeducation.com/recursion/4-steps-to-defining-recursive-functions.md)
- [Recursion Practice](https://haskell.hpmeducation.com/recursion/recursion-practice.md)
- [Folds](https://haskell.hpmeducation.com/recursion/folds.md)
- [Fold Right (foldr)](https://haskell.hpmeducation.com/recursion/folds/fold-right-foldr.md)
- [Fold Left (foldl)](https://haskell.hpmeducation.com/recursion/folds/fold-left-foldl.md)
- [Declaring Types](https://haskell.hpmeducation.com/cutom-types/declaring-types.md)
- [Type Synonyms](https://haskell.hpmeducation.com/cutom-types/declaring-types/type-synonyms.md)
- [Data Declarations](https://haskell.hpmeducation.com/cutom-types/declaring-types/data-declarations.md)
- [Newtype declarations](https://haskell.hpmeducation.com/cutom-types/declaring-types/newtype-declarations.md)
- [Introduction](https://haskell.hpmeducation.com/type-classes/introduction.md)
- [Basic Classes](https://haskell.hpmeducation.com/type-classes/basic-classes.md)
- [Eq – Equality Types](https://haskell.hpmeducation.com/type-classes/basic-classes/eq-equality-types.md)
- [Ord – ordered types](https://haskell.hpmeducation.com/type-classes/basic-classes/ord-ordered-types.md)
- [Show – Showable Types](https://haskell.hpmeducation.com/type-classes/basic-classes/show-showable-types.md)
- [Read – readable types](https://haskell.hpmeducation.com/type-classes/basic-classes/read-readable-types.md)
- [Num – Numeric Types](https://haskell.hpmeducation.com/type-classes/basic-classes/num-numeric-types.md)
- [Integral – Integral Types](https://haskell.hpmeducation.com/type-classes/basic-classes/integral-integral-types.md)
- [Fractional – Fractional Types](https://haskell.hpmeducation.com/type-classes/basic-classes/fractional-fractional-types.md)
- [Enum – Enumeration Types](https://haskell.hpmeducation.com/type-classes/basic-classes/enum-enumeration-types.md)
- [Derived Instances](https://haskell.hpmeducation.com/type-classes/derived-instances.md)
- [Exercise – Making a Card Deck Type](https://haskell.hpmeducation.com/type-classes/exercise-making-a-card-deck-type.md)
- [Introduction](https://haskell.hpmeducation.com/interactive-programming/introduction.md)
- [Input / Output Actions](https://haskell.hpmeducation.com/interactive-programming/input-output-actions.md)
- [Sequencing Actions](https://haskell.hpmeducation.com/interactive-programming/sequencing-actions.md)
- [Exercise - Numbers Guessing Game](https://haskell.hpmeducation.com/interactive-programming/exercise-numbers-guessing-game.md)
- [Introduction](https://haskell.hpmeducation.com/functors-applicatives-and-monads/introduction.md)
- [Functors](https://haskell.hpmeducation.com/functors-applicatives-and-monads/functors.md)
- [Applicative Functors](https://haskell.hpmeducation.com/functors-applicatives-and-monads/applicative-functors.md)
- [Monads](https://haskell.hpmeducation.com/functors-applicatives-and-monads/monads.md)
- [Maybe Monad](https://haskell.hpmeducation.com/functors-applicatives-and-monads/monads/maybe-monad.md)
- [List Monad](https://haskell.hpmeducation.com/functors-applicatives-and-monads/monads/list-monad.md)
- [Monad Laws](https://haskell.hpmeducation.com/functors-applicatives-and-monads/monads/monad-laws.md)
- [References / Further Reading](https://haskell.hpmeducation.com/references.md)
