Skip to content

rober-m/haskell-bootcamp

Repository files navigation

HaskellBootcamp

Repository containing the lectures and homework of the IOG's Haskell Bootcamp

What we'll cover

Module I - Haskell for Marlowe

Week 1

  • Intro and tools
  • Functions, Data types, and Signatures
  • Pattern matching, let, where
  • More on functions and lists
  • Q/A Session

Week 2

  • Intro to Type Classes
  • Creating types and type classes
  • Basic I/O
  • Complete CLI project (tentative)
  • Q/A Session

Week 3

  • Modules and Cabal
  • Learning on your own
  • Maybe and Either
  • Complete project from start to finish (tentative)
  • Q/A Session

Module II - Haskell for Plutus

Week 1

  • Identifying the pattern
  • Monads
  • Q/A Session

Week 2

  • More monads
  • Composing functors and applicatives
  • Transformers
  • Complete State Machines project using Compose and Monad T
  • Q/A Session

Week 3

  • Testing
  • Type Level Programming
  • Useful Libraries (Template Haskell, Lens, etc.)
  • Q/A Session

Repository structure

Haskell-Bootcamp
    |   |
    |   |---- code
    |          |
    |          |---- Week01 (homework for week 01)
    |          |---- Week02 (homework for week 02)
    |          ...
    |
    |-------- lessons <- Lessons in Juptyer notebook format (accessed
               |      through Binder. See instructions below.)
               |
               |---- Week01 (lessons for week 01)
               |---- Week02 (lessons for week 02)

Everything else can be safely ignored

To view the interactive lessons click on the button below

Binder

To do the homework

  1. Clone this repository.
  2. Create a GitPod account.
  3. Select the code/WeekXX folder with the homework you want to complete.
  4. Click this button to create a remote dev environment: Visual Studio Code
  5. Follow the instructions inside the app/Main.hs file.

About

Repository containing the lectures and homework of the IOG's Haskell Bootcamp

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages