Workshop Pragmatic Introduction to Category Theory
Switch branches/tags
Nothing to show
Clone or download
Latest commit 35fcc38 Nov 13, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
project First commit Sep 8, 2017
src Added link for solutions Sep 19, 2017
.gitignore Added link for solutions Sep 19, 2017
LICENSE Initial commit Sep 8, 2017 Update Nov 13, 2017
build.sbt First commit Sep 8, 2017


Code for the Pragmatic Introduction to Category Theory.

Slides and video are now available online!


  • clone the repo
  • sbt test:compile
  • sbt run
  • if you see the secret message you are good to go!




  • Define a monoid for Int
  • Define a monoid for String

sbt 'testOnly *Monoid*'


  • Define a functor for Maybe
  • Define a functor for ZeroOrMore

sbt 'testOnly *Functor*'


  • Define map in terms of ap and pure
  • Define an applicative for Maybe
  • Define an applicative for ZeroOrMore

sbt 'testOnly *Applicative*'

Monad (1)

  • Define flatten using flatMap
  • Define map using flatMap and pure
  • Define ap using flatMap and map

Monad (2)

  • Define a monad for Maybe
  • Define a monad for ZeroOrMore

sbt 'testOnly *Monad*'


Solution of the exercises are available here