1.8 KiB
1.8 KiB
Haskell Learning Path
This note links the Haskell examples in a suggested order from first project structure through intermediate language and application patterns.
1. Suggested Order
05-haskell/: a small Cabal library, executable, test suite, and dev shell06-haskell-shellfor/: a Haskell package set override and ashellFor-based dev shell07-haskell-deps/: external Haskell libraries through Cabalbuild-depends08-haskell-adt/: algebraic data types, records, and pattern matching09-haskell-newtype/:newtype, smart constructors, and validation10-haskell-effects/:ReaderT,Except, and constrained application logic11-haskell-typeclasses/: custom type classes and per-type instances12-haskell-parser-combinators/: parser combinators with Megaparsec
2. What to Focus on at Each Step
05-haskell/: how a Cabal package becomes a flake package, app, dev shell, and check06-haskell-shellfor/: when a Haskell-specific dev shell is more useful than a generic shell07-haskell-deps/: why Cabal stays the source of truth for package dependencies08-haskell-adt/: how to model a problem with constructors before writing behavior09-haskell-newtype/: how to move validation to the boundary and protect the domain model10-haskell-effects/: how to separate configuration, logic, and failures11-haskell-typeclasses/: how to abstract shared behavior across several types12-haskell-parser-combinators/: how to build a small language from reusable parser pieces
3. Related Notes
notes/007-haskell.mdnotes/008-haskell-shellfor.mdnotes/009-haskell-dependencies.mdnotes/010-haskell-adts.mdnotes/011-haskell-newtypes.mdnotes/012-haskell-effects.mdnotes/013-haskell-typeclasses.mdnotes/015-haskell-parser-combinators.md