Раздел 45 · Python backend: Тарбадель

Тайпклассы, функторы и монады

middle-senior~35 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Конвейер сверки из прошлого урока работает, и 0309 доезжает до отчёта со своей ошибкой. Элодий спустился из Подземья посмотреть на Палату и уже час листает твой код. Он обводит мелом три строки в трёх разных файлах.

Вопрос с подвохом, и в нём два вопроса. Первый: как написать одну операцию, у которой своя реализация для каждого типа, включая типы, которые писал не ты: int, list, Ok. Второй: как подписать операцию map так, чтобы mypy знал, что из списка выходит список, а из Result выходит Result.

На первый вопрос у Python есть хороший ответ. На второй у mypy честного ответа нет, и этот урок о том, где проходит граница и как её обходят. Имена у ответов старые, из функциональных языков: тайпкласс, функтор, монада. Звучат страшно, а разбираются на пальцах.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.