_Это пятая статья из цикла «Теория категорий для программистов». Предыдущие статьи уже публиковались на Хабре в переводе [Monnoroch][1]:_ [0\. Теория категорий для программистов: предисловие][2] [1\. Категория: суть композиции][3] [2\. Типы и функции][4] [3\. Категории, большие и малые][5] [4\. Категории Клейсли][6] _На КДПВ поросенок Петр заводит по одному трактору в каждый объект категории._
Древнегреческий драматург Еврипид писал «Всякий человек подобен своему окружению». Это верно и для теории категорий. Выделить определенный объект категории можно только путем описания характера его взаимоотношений с другими объектами (и самим собой), где отношения — это морфизмы. Для определения объектов в терминах их взаимоотношений теория категорий прибегает к т. н. _универсальным конструкциям_. Для этого можно выбрать некоторый шаблон, диаграмму из объектов и морфизмов определенной формы, и рассмотреть все подходящие под него конструкции рассматриваемой категории. Если шаблон достаточно распространен и категория достаточно велика, то, вероятно, найденных конструкций будет очень и очень много. Идея универсальной конструкции состоит в том, чтобы упорядочить конструкции по какому-то закону и выбрать наиболее подходящую. Этот процесс можно сравнить с поиском в сети. Запрос пользователя — это наш шаблон. Если запрос не очень специфичен, то в ответ поисковая система выдаст множество подходящих документов, только часть из которых релевантны. Чтобы исключить нерелевантные ответы, пользователь уточняет запрос, что увеличивает точность поиска. В конце концов поисковая система проранжирует совпадения и, если повезет, искомый результат будет в самом начале списка. [Читать дальше →][7]
[1]:
http://habrahabr.ru/users/monnoroch/
[2]:
http://habrahabr.ru/post/245797/
[3]:
http://habrahabr.ru/post/246009/
[4]:
http://habrahabr.ru/post/247765/
[5]:
http://habrahabr.ru/post/248257/
[6]:
http://habrahabr.ru/post/249113/
[7]:
http://habrahabr.ru/post/271927/#habracut