helderasmoreira / tutorial-cat

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tutorial-cat

Code for the Pragmatic Introduction to Category Theory workshop at ScalaWorld 2017

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

About

License:Apache License 2.0


Languages

Language:Scala 100.0%