Zagadniena na 2. kolokwium z programowania funkcyjnego 1. Prosty program: - odczytanie danych ze standardowego wejścia - proste obliczenie - wydrukowanie wyniku na standardowe wyjście 2. Funktory: - umiejętność wykorzystania operacji: fmap, <*>, >>=, >> do przeprowadzenia działań wewnątrz funktora - definiowanie instancji klas Funktor, Applicative, Monad dla prostych funktorów (lista, drzewo, Maybe, Either) (patrz dyda -> Może.hs, Stan.hs) 3. Obliczenia monadowe (dyda->ewaluator[12].hs) - przekształcenie zwykłej funkcji na funkcję wykonującą obliczenie w monadzie - uruchomienie obliczenia wewnątrz monady 4. Transformery monad: (dyda->ewaluator[12].hs) - umiejętność zbudowania 2-3 wartwowej monady z użyciem transformerów monad - uruchomienie obliczenia i "odpakowanie" wyniku