This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
courses:functional_programming:lectures [2018/11/19 18:52] vnikolenko edit semigroup, monoid |
courses:functional_programming:lectures [2018/12/03 17:07] vnikolenko |
||
---|---|---|---|
Line 48: | Line 48: | ||
* Операторы и сечения | * Операторы и сечения | ||
* Модули | * Модули | ||
- | * Реализации языка Haskell и инфраструктура | + | * Реализации языка Haskell и инфраструктура (cabal, stack, hackage, hoogle) |
===== Основы программирования в Haskell ===== | ===== Основы программирования в Haskell ===== | ||
Line 70: | Line 70: | ||
* Semigroup a, закон для полугруппы | * Semigroup a, закон для полугруппы | ||
* Semigroup a => Monoid a, законы для моноида | * Semigroup a => Monoid a, законы для моноида | ||
+ | * Стандартные моноиды ([a], Any, All, Product a, Sum a, Endo a, Dual a, Last a, First a) | ||
* Foldable | * Foldable | ||
Line 77: | Line 78: | ||
* Аппликативные функторы | * Аппликативные функторы | ||
* Законы для аппликативных функторов | * Законы для аппликативных функторов | ||
- | + | * Функция как функтор, аппликативный функтор | |
- | ===== Использование аппликативных функторов ===== | + | * Список как аппликативный функтор, ZipList |
- | * Аппликативные парсеры | + | |
- | * Класс типов Alternative | + | |
- | * Законы класса Alternative | + | |
- | * Класс типов Traversable | + | |
- | * Законы класса Traversable | + | |
===== Монады ===== | ===== Монады ===== | ||
Line 99: | Line 95: | ||
* IO | * IO | ||
* Функции ввода-вывода | * Функции ввода-вывода | ||
+ | |||
+ | |||
+ | <note warning>Остальное не успели</note> | ||
+ | ===== Использование аппликативных функторов ===== | ||
+ | * Аппликативные парсеры | ||
+ | * Класс типов Alternative | ||
+ | * Законы класса Alternative | ||
+ | * Класс типов Traversable | ||
+ | * Законы класса Traversable | ||
===== Трансформеры монад ===== | ===== Трансформеры монад ===== |