• Stars
    star
    118
  • Rank 299,923 (Top 6 %)
  • Language
    Scala
  • License
    Apache License 2.0
  • Created about 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Workshop Pragmatic Introduction to Category Theory

tutorial-cat

Code for the Pragmatic Introduction to Category Theory.

Slides and video are now available online!

Installation

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

Agenda

Intro

Monoid

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

sbt 'testOnly *Monoid*'

Functor

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

sbt 'testOnly *Functor*'

Applicative

  • 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*'

Solutions

Solution of the exercises are available here