В статье рассматривается
* Как такая абстракция теории категорий как **инвариантный функтор** (Invariant Functor), который иногда называют экпоненциальным функтором (Exponential Functor), выражается на Scala.
* Два правила (**Identity Law**, **Composition Law**), которым доложен следовать каждый инвариантный функтор.
* Приведен пример **инвариантного функтора с состоянием** (Value Holder)
* Приведен пример **инвариантного функтора-отношения** между элементами множества (полугруппа)
Публикация является продолжением [FP на Scala: Что такое функтор?][1] в которой были рассмотрены следующие вопросы
* Какая имеется связь между **теорией категорий**, **Haskell** и **Scala**.
* Что такое **ковариантный функтор**.
* Что такое **контравариантный функтор**.
Содержание
* [Введение][2]
* [Что такое Invariant Functor][3]
* [Invariant Functor — Identity Law][4]
* [Invariant Functor — Composition Law][5]
* [Пример #1: Value Holder][6]
* [Пример #2: Полугруппа][7]
* [Инвариантный функтор в библиотеках][8]
[Читать дальше →][9]
[1]:
http://habrahabr.ru/company/golovachcourses/blog/266905/
[2]:
http://habrahabr.ru/company/golovachcourses/blog/267087/#0
[3]:
http://habrahabr.ru/company/golovachcourses/blog/267087/#10
[4]:
http://habrahabr.ru/company/golovachcourses/blog/267087/#11
[5]:
http://habrahabr.ru/company/golovachcourses/blog/267087/#12
[6]:
http://habrahabr.ru/company/golovachcourses/blog/267087/#20
[7]:
http://habrahabr.ru/company/golovachcourses/blog/267087/#21
[8]:
http://habrahabr.ru/company/golovachcourses/blog/267087/#30
[9]:
http://habrahabr.ru/post/267087/#habracut