/Infsen-2019

Functor, Monad, Monoid basis uitleg

Primary LanguageTypeScript

INF Software Engenering

Belangrijke onderwerpen

  1. Fun (Functie met Map & Identity functor aka Functor)
  2. Monad (Functor + FlatMap)
  3. Concat
  4. Option (None, some)
  5. Pair(fst, snd)
  6. Either (left, right)
  7. State

How to start

Om te beginnen run je:

tsc -w
node js/lesson1

Recap basis principe

Functor

Om functors te begrijpen heb je de kennis nodig van morfisme.
Morfisme is niets anders dan (f) hoe iets van a -> b transformeert zie afbeelding voor verduidelijking:

morfisme

Enige voorwaarde is dat elk object een eigen morfisme ID heeft:

morfismeID

Totaal voorbeeld die veel gebruikt wordt bij software engering:

voorbeeld

Functor
Een functor is een functie die gemaakt is uit een morfisme.

functor

Functor doet dus via een morfisme een object transformeren naar een ander object.

Monad

Monad is een Functor die als extra functionaliteiten het volgende heeft.

  1. Flatmap (join in de terminologie).

Monoid

Monoid is een functie die altijd dezelfde uitkomst geeft
a + (b + c) is hetzelfde als (a + b) + c

Map functor

Dit is de uitleg van een map functor:
map functor

Hoe is een functie opgebouwd

functie omschreven

Succes!