My solutions to the Exercism's Haskell track. Solutions (/src) are provided along with the tests (/test).
My Exercism profile: https://exercism.io/profiles/dkaysin
Some of my favorite exercises:
- Implement an evaluator for a very simple subset of Forth
- Reparent a graph on a selected node
- Given the state of a Go board, list areas taken by each player
Topics covered:
-
Language features:
- Basics (incl. recursion, currying, list comprehensions, maps, folds, algebraic types, higher order functions)
- Strict vs lazy evaluation
- Monads and monad transformers
- Concurrency (atomic operations)
- Parallelization
- Lenses
- Parsec library for parsing
-
Algorithms and data structures
- Functional data structures (stacks, queues, double-ended queues, sets, binary and rose trees, list and tree zippers)
- Operations on trees: traversing, searching, reparenting, path finding
- Dynamic programming with memoization
- Parsing (lots of parsing)
- Domain-specific language interpretation
- State machines