Skip to content

Instantly share code, notes, and snippets.

@danslapman
Last active June 23, 2022 19:58
Show Gist options
  • Save danslapman/222dc94b725c7dda5911e1507369e979 to your computer and use it in GitHub Desktop.
Save danslapman/222dc94b725c7dda5911e1507369e979 to your computer and use it in GitHub Desktop.
Typeclasses
Доклад простыми словами знакомит слушателя с понятиями "тайпкласс" и "тип высшего порядка" и объясняет,
почему об этом постоянно говорят функциональщики.
Для тех, кто был на докладе Олега на Joker 2018, но ничего не понял
1. Проблематика традиционного наследования
https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html
1.1. Вспоминаем Comparable<>
1.2. От Comparable к Comparator
1.3. А что, если посластить? (тут пример на псевдо-Java)
1.4. Моноид, ой, простите, Combiner
2. Дырявые типы
2.1. Разбираемся с ограничениями дженериков (Optional -> List, List -> Future и подобное)
2.2. Тайна слова на букву М (и на букву Ф) - тут про то, откуда выросли map и flatMap в stream API
2.3. Что-бы нам дали HKT и тайпклассы в плане обобщённых алгоритмов
3. Заключение - что осталось за кадром и что же пытался донести Олег
3.1. Expression problem и Java (Shape/Circe/Rectangle)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment