Complete Haskell Tutorials through practices:
Practice 1 • Topic: Haskell basics, function definitions • Mandatory reading: learnyouahaskell.com Section “Baby’s first functions” • Further reading: Real World Haskell Chapter “Types and Functions”
Practice 2 • Topic: data types, function types, polymorphism • Mandatory reading: learnyouahaskell.com Section “Believe the type” learnyouahaskell.com Section “Tuples” learnyouahaskell.com Section “An intro to lists” learnyouahaskell.com Section “Type variables”
Practice 3 • Topic: currying, overloaded functions • Mandatory reading: learnyouahaskell.com Section “Curried functions” learnyouahaskell.com Section “Typeclasses 101”
Practice 4 • Topic: overloaded functions, conditional expressions, guards • Mandatory reading: learnyouahaskell.com Section “Guards, guards!”
Practice 5 • Topic: pattern matching • Mandatory reading: learnyouahaskell.com Section “Pattern matching” • Further reading: Real World Haskell Section “Pattern matching”
Practice 6 • Topic: lambda functions, higher order functions (map) • Mandatory reading: learnyouahaskell.com Section “Maps and filters” learnyouahaskell.com Section “Lambdas”
Practice 7 • Topic: higher order functions, list comprehensions • Mandatory reading: learnyouahaskell.com Section “I’m a list comprehension”
Practice 8 • Topic: recursion • Mandatory reading: learnyouahaskell.com Sections “Hello recursion!”, “Maximum awesome” and “A few more • recursive functions” • Further reading: Real World Haskell Section “How to think about loops”
Practice 9 • Topic: higher order functions • Mandatory reading: learnyouahaskell.com Chapter “Higher order functions” • Further reading: • Real World Haskell Sections “Transforming every piece of input”, “Mapping over a list”, “Selecting pieces of input” • Real World Haskell Section “Why use folds, maps, and filters?”
Practice 10 • Topic: defining new data types. • Mandatory reading: learnyouahaskell.com Section “Algebraic data types” • Further reading: Real World Haskell Section “Defining a new data type”
Practice 11 • Topic: defining parametric data types • Mandatory reading: learnyouahaskell.com Section “Type parameters”
Practice 12 Topic: type classes • Mandatory reading: learnyouahaskell.com Section “Type classes 102”