Scala-разработчик
Категории типов. Часть 2. Функторы

Это вторая вводная часть обзора, посвящённого применению теории категорий в программировании. В первой части представлены некоторые основные определения теории, в том числе, hom-типы, их значения-морфизмы, а также их композиция, позволяющая строить пути вычислений в рамках одной категории. В данной же публикации мы рассмотрим, как пути вычислений можно прокладывать через разные категории.
Категории типов. Часть 1. Hom-типы

Данный обзор посвящён применению теории категорий в программировании. Акцент сделан на то, что стремление к повышению качества программ неизбежно приводит к абстракциям («функтор», «монада» и прочие), которые уже появились в математике при решении другого рода задач.
В этой части будет рассказано об основных свойствах категорий, приведены примеры наиболее важных для дальнейшего изложения. Но сразу предупреждаю, что это лишь «скучное введение» — полезность представленных здесь сведений раскроется лишь в последующих частях обзора.
Программисту нужна математика?

Часто слышу такой вопрос от коллег и знакомых. Очевидно, что короткого ответа тут недостаточно, собеседник приведёт контраргументы, что в итоге выльется в жаркий спор. Обычно в результате такого спора единое мнение не формируется, каждый остаётся при своём.
Всё дело в том, что этот вопрос сам по себе является риторическим, провоцирующим спор. «Правильность» ответа существенным образом зависит от контекста, который у каждого собеседника, как правило, свой собственный. Контекстом в данном случае будет разное понимание смысла слов вопроса.
Кредо программиста (в приложении к стилю кодирования)

Однажды меня попросили подготовить рекомендации по программированию на Scala для сотрудников нашей компании. В поисках лучших рецептов приходилось заглядывать в самые пыльные уголки Интернета, и в одном из них, в ветхом проржавелом сундуке я заметил старинный конверт. Просто из любопытства решил заглянуть туда, благо конверт был уже вскрыт. Истлевшие страницы, поблекшие чернила, но содержание настолько меня заворожило, что я просто не мог не поделиться со всеми!
К сожалению, не удалось установить ни автора, ни адресата. Местами текст совершенно невозможно было прочитать, так что пришлось додумывать самому. Но даже несмотря на потери, письмо всё ещё достойно Вашего внимания.
Рекурсивные типы. Часть 5/5. Занимательный матан

Содержание пятой части:
Натуральные числа
Разложение в ряд
Производные от типов
Производные от экспоненциалов
Производные от рекурсивных типов
Рекурсивные типы. Часть 4/5. Схемы рекурсии

Содержание четвёртой части:
Обобщение свёрток/развёрток
Параморфизм и другие схемы рекурсии
Хистоморфизм
Футуморфизм
Рекурсивные типы. Часть 3/5. Свободные контейнеры

Сравнительно небольшая часть обзора, посвящённая свободным контейнерам. Содержание:
Свободный контейнер
Более свободный контейнер
Батуты
Ко-свободный контейнер
Промежуточный итог
Рекурсивные типы. Часть 2/5. Неподвижные точки конструкторов типов

Содержание второй части:
Неподвижные точки конструкторов типов
Начальная F-алгебра
Наибольшая неподвижная точка
Классы типов неподвижных точек
Рекурсивные типы. Часть 1/5. Рекурсия

Слово «рекурсия» происходит от латинского «recursio» – «круговорот, возврат». Применительно к вычислениям этот термин относится к алгоритмам, повторяющих какие-либо действия. Этот обзор посвящён типам, которые обслуживают рекурсивные алгоритмы.
Это вводная часть и собственно про типы здесь будет мало что сказано. Содержание:
Вычислимые функции
Циклы и рекурсия
Cтек и хвостовая рекурсия
Ссылки вперёд
Y-комбинатор в λ-исчислении
Реализация комбинатора неподвижной точки
Обобщённые типы. Часть 3/3. Применение контейнерных типов

В последней третьей части обзора продемонстрировано, как на основе обобщённых типов-контейнеров реализуются различные ФП-техники “чистого” построения “эффективных” программ. В заключении будет отмечена роль теории категорий в обосновании важности абстракций, построенных над обобщёнными типами.
Обобщённые типы. Часть 1/3. Полиморфные типы высокого рода

В предыдущей статье раскрывались некоторые базовые понятия теории типов. В этот раз мы рассмотрим обобщённые типы (generics) – необходимость появления такой абстракции, ключевые особенности и различные сценарии использования в программировании.
Обобщённые типы. Часть 2/3. Классы типов и контейнеры

Это вторая часть обзора обобщённых типов, в которой мы расскажем о классах типов и типах-контейнерах.
Теория типов

Мы так привыкли к типам, что редко задаёмся вопросом, что же они такое на самом деле? А главное - почему возникла необходимость в их использовании? Этот поверхностный обзор сделан для того, чтобы продемонстрировать, как типы и другие связанные абстракции являются следствием из обобщения условий различных задач.
Information
- Rating
- 866-th
- Location
- Воронеж, Воронежская обл., Россия
- Registered
- Activity