Monady Flashcards
Aka je motivacia za monadami?
slide 1,2
Potrebujeme špeciálne skladanie viachodnotových funkcií.
Ako prebieha vypocet pri motvacii za monadami?
- aplikovaním vnútornej funkcie g :: a → [b] na x :: a získame [b]
- na prvky [b] aplikujeme f :: b → [c], čím získame [[c]]
- zoznam zoznamov vyrovnáme (flatten) funkciou concat
Co je este motivacia za monadami?
Rozsirenie o testovacie vypisy, ktore vieme skladat
slide 4,5
Co je to fish operator?
<=<
(<=<) :: (b->(String,c))->(a->(String,b))->a->(String,c)
Co treba definovat pre monadu?
> > =
Co je to»_space;=?
m a->(a->m b)->m b
hod. v kont. odovzdá funkcii vracajúcej hod. v kont.
Co robi»_space;?
m a->m b->m b
Co robi return?
vloží „čistú“ hodnotu do kontextu
Ake identity musi splnat implementacia return a»_space;=?
- return a»_space;= k = k a
- m»_space;= return=m
- m»_space;= (\x -> k x»_space;= h) = (m»_space;= k)»_space;= h
Co je to do notacia?
do {e} = e
do {e; stmts} = e»_space; do {stmts}
do {p ← e; stmts} = e»_space;= λp → do {stmts}
Aky je suvis do notacie s mnozinovou notaciou?
slide 9
Ako vieme implementovat if pomocou monad, aplikativnych funktorov?
slide 10,11
Co vieme spravit pomocou monad ale nie pomocou aplikativnych funktorov?
slide 13
Porovnaj funkcie, zdroje a ciel pri porovnani apl. fun, fun a monad
slide 14
Smerom od funktorov k monádam získavame …
silnejšie rozhranie a
flexibilnejšiu kontrolu nad výsledkom, za cenu:
* menších záruk o výsledku,
* menšieho počtu inštancií.