Seminář z funkcionálního programování

Materiály ze cvičení

Loňská verze
Většinu materiálů budeme přebírat z loňska. Něco málo jsme prohodili, takže čísla přednášek nemusí sedět. Organisační pokyny nebo narážky na úlohy ve videích se také mohou lišit od letošního stavu. Nenechte se jimi zmást!

Cvičení 1

Pokročilá syntaxe, Either, funktory

Hoogle (Haskell API search)
Vyhledávač funkcí a modulů podle názvu, typu, popisu
Learn You a Haskell for Great Good!
Výtečná učebnice Haskellu od základů až po monády

Cvičení 2

Monády, aplikativní funktory

Snadno stravitelné články k pochopení monád:

Cvičení 3

Parsec

První velký domácí úkol

Parser. Informace jsou v samostatné podosnově.

Cvičení 4

QuickCheck

Přednáška: QuickCheck
Může být zapotřebí video otevřít mimo prohlížeč (kodek H.265)

Cvičení 5

Vyhodnocovací strategie

Cvičení 6

Semigroup, Monoid, Foldable, Traversable

Cvičení 7

Reader, Writer, State

Cvičení 8

Pokročilejší I/O, výjimky

Druhý velký domácí úkol

Informace jsou v samostatné podosnově.

Cvičení 9

Čočky (lenses) a jiná optika

Příklad: hra Pong
Vcelku hezký a čitelný příklad použití čoček ve stavové monádě (operátory +=, %= atd.)

Cvičení 10

Zippers, řetězce, rozšíření GHC

Cvičení 11

Transformátory monád (ReaderT, WriterT, StateT, ExceptT)

Cvičení 12

Ještě mnohem temnější magie

TODO: cviko

Dodatečné materiály