Magical Haskell

Magical Haskell

Anton Antich
Buy on Leanpub

Table of Contents

How this book came to be: instead of an introduction›

  • How this book came to be: instead of an introduction
  • Short Introduction: How To Read This Book

Part 1: Foundation›

  • Chapter 1: Wizards, Types, and Functions
    • Functional Programming Is Magic
    • Solving Problems As Wizards Do
    • Let’s Fall In Love With Types!
    • A Char and an Int walk into a bar and make a Function
    • How FunTypical!
    • Curry and Recurse!
    • Conclusion
    • Mage’s Toolbox 1: Simple Types, Simple Functions, Recursion, If-Else
  • Chapter 2: Type Construction
    • House of cards with a little help from Algebra
    • Algebraic Data Types
    • Records
    • Type Functions Are Functions, Maybe?
    • Advanced: On Data Constructors and Types
    • List, Recursion on Types and Patterns
    • Lift me up!
  • Chapter 3M: Gentle Type Theory Intro
    • Types and Functions
    • Maybe and Advanced Generalized Functions
    • Dependent Function Types (PI-types)

Part 2: I Wanna Be FAMIOus!›

  • Chapter 4: Basic Typeclasses or “Show Me A Monoid”
    • Algebra is cool
    • Typeclasses Hierarchy in Haskell
  • Chapter 5: Functor, Bifunctor, Trifunctor?
    • 3-Dimensional Vector Example
    • You are Either Functor or a Bifunctor
  • Chapter 6: Applicative
  • Chapter 7: Monad
  • Chapter 8: IO
  • Chapters below are not finished yet :) Stay tuned!
  • Chapter 7M: Light Category Theory Intro
  • Chapter 8: Real World Programs: putting Ogres to sleep while counting bodies
    • Popular Monads in Haskell
    • Visual representation of Monad Transformers
    • Some real-life examples
    • Errors on State on Reader on IO
  • Chapter 9: Folding stuff, Traversing structures
    • Functional data structures
    • What killed the for loop
  • Chapter 9M: Lambda Calculus

Part 3: Getting Practical›

  • Chapter 10: More Dependent Types
    • Multiparameter Typeclasses
    • Data and Type Families
  • Chapter 11: Mutable variables and Vectors
    • ST-Monad
  • Chapter 12: Parallel computations
  • Chapter 13: High-performance math and data analysis
  • Chapter 14: GUI: to FRP or not to FRP?
  • Chapter 15: Let’s Make a Language!
    • Parsers and Lexers
    • Type System
Magical Haskell/Part 3: Getting Practical

Part 3: Getting Practical

Up next

Chapter 10: More Dependent Types

In this part

  • Chapter 10: More Dependent Types
  • Multiparameter Typeclasses
  • Data and Type Families
  • Chapter 11: Mutable variables and Vectors
  • ST-Monad
  • Chapter 12: Parallel computations
  • Chapter 13: High-performance math and data analysis
  • Chapter 14: GUI: to FRP or not to FRP?
  • Chapter 15: Let’s Make a Language!
  • Parsers and Lexers
  • Type System