52700.fb2
J ust a
J ust b,
если a
b
Если вспомнить как происходит вычисление значения, то значение a менее определено чем b, если взрыв-
ное значение ⊥ в a находится ближе к корню значения, чем в b. Итак получается, что в категории Hask объ-
екты это множества с частичным порядком. Что означает требование монотонности функции?
Монотонность в контексте операции
говорит о том, что чем больше определён вход функции тем больше
определён выход:
a
b
⇒ f a
f b
Это требование накладывает запрет на возможность проведения сопоставления с образцом по значению
⊥. Иначе мы можем определять немонотонные функции вроде:
isBot :: Bool -> Bool
isBot undefined = True
isBot _
= undefined
Полнота частично упорядоченного множества означает, что у любой последовательности xn
x 0
x 1
x 2
...
есть значение x, к которому она сходится. Это значение называют супремумом множества. Что такое
полные частично упорядоченные множества мы разобрались. А что такое полиномиальный функтор?
Полиномиальный функтор
Полиномиальный функтор – это функтор который построен лишь с помощью операций суммы, произве-
дения, постоянных функторов, тождественного фуктора и композиции функторов. Определим эти операции:
• Сумма функторов F и G определяется через операцию суммы объектов:
( F + G) X = F X + GX
• Произведение функторов F и G определяется через операцию произведения объектов:
( F × G) X = F X × GX
• Постоянный функтор отображает все объекты категории в один объект, а стрелки в тождественнубю
стрелку этого объекта, мы будем обозначать постоянный функтор подчёркиванием:
AX
=
A
Af
=
idA
• Тождественный функтор оставляет объекты и стрелки неизменными:
IX
=
X
If
=
f