[#] FP на Scala: Invariant Functor
habrabot(difrex,1) — All
2015-09-21 12:00:03


В статье рассматривается

* Как такая абстракция теории категорий как **инвариантный функтор** (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