В трек по функциональному программированию добавлен Last Principles Framework (теория категорий для разработчиков). Разбираем все эти понятия с полного нуля очень компактно, поймёт любой миддл, тем более после трека ФП. Задачки/квизы (38 штучек) несложные, с разбором, все в теме system/software design, hand made :)
=>
Категория. Объекты + морфизмы/стрелки, тождество и ассоциативность композиции.
Композиция, домен/кодомен.
Мономорфизм, эпиморфизм, изоморфизм.
Функтор (отображение между категориями), контравариантный.
Натуральное преобразование (морфизм функторов), коммутативный квадрат.
Категория функторов (объекты - функторы, морфизмы - натуральные преобразования).
Универсальное свойство. Начальный и терминальный объекты.
Произведение (категориальное). Копроизведение (сумма). Обобщение произведения (диаграмма).
Экспоненциал (внутренний Hom).
Сопряжение (естественный изоморфизм).
Пределы и копределы. Конус и коконус. Ядро, уравнитель, обратный предел.
Монада (тройка), эндофунктор, аксиомы.
Алгебры над монадой. Категория алгебр.
Категория Клейсли (для монады), композиция через склейки.
Лемма Йонеды.
Категории с дополнительной структурой. Декартово замкнутая. Топос.
Стрелки Чу. Пучки.
Высшие категории. Морфизмы между морфизмами, ослабление ассоциативности до когерентных гомотопий.
🤓
...На самом деле, тут правильнее сказать, не теоркат изучаем, а встраиваем формальную думательную машинку как рассуждать и об system design, и об software design, ибо тут имеется ровно один математический способ делать это верно. Вы же понимаете например, что ваши fold/reduce никакая не функциональщина а карго-культ, если вы не гарантируете моноидально корректность этой свёртки. Ну или можете продолжать "покрывать код тестами", прости господи, т.к. это очевидное следствие того, что ты просто не понимаешь, как работает твой код, и никаким формализмом его корректность не гарантирована даже на 2%.
Post #2647
529
- 🔥 29
- ✍ 5
- 🤔 5
- ❤ 3
- ❤🔥 2