2013/03/29 09:37:40
1. У меня на рабочем маке звук пропал во флешке; никакой ютьюб не смотрится - сколько свободного времени! И тишина... Можно, конечно, перебутить, но жалко, у меня всякие там серверы и сервисы запущены. Всё запущено.
2. Про предел забывающего функтора.

Слушайте, ну чо. Ну вот категория, состоит из типов и функций с одним параметром. Куда деть функции двух параметров - ну считайте, что они заданы на парах (если есть два типа, то есть и третий, состоящий из пар).

Ну и вот; а теперь возмём тайпкласс моноидов. Что такое моноид? Это тип, на котором задана бинарная ассоциативная операция (не испугались ещё? бинарная - это два параметра; ассоциативная - это вы в школе проходили). Ну такие типы, моноиды, они же составляют как бы подкласс всех типов. Только нужно ещё, чтобы и функции были, э, инвариантны относительно этой операции: f(a*b)=f(a)*f(b).

Правильнее было бы сказать не "инвариантны", а сохраняющие операцию *.

Моноидов много - и Int со сложением, и Int с умножением, и String с конкатенацией, и Bool с дизъюнкцией - всё это моноиды.

Ну и что, и класс моноидов вкладывается в класс всех типов, так? Это вложение и называется забывающим функтором - потому что тип сохраняется, но забыли, что там была операция.

Теперь что, теперь представим вот эту операцию, отображение моноидов во все типы вообще. Это диаграмма называется (представим картинку, где все моноиды и функции между ними, и эта картинка - часть общей картинки со всеми типами).

У такой фигни вполне может быть предел - то есть, такой универсальный тип, что из него есть функция в каждый моноид (просто функция), которая согласуется с функциями между моноидами (т.е. (X -> MonoidA -> MonoidB) == (X -> MonoidB) и если есть такой же другой тип, тоже с функцией в каждый моноид, согласующимися, как выше - то из этого другого типа есть уникальная функция в X, согласующаяся с набором остальных функций.

Так вот, в случае моноида таким универсальным типом является точка, с функцией в каждый моноид: понятно, что выбирающей нейтральный элемент моноида.

Ну и всё, собственно. Если моноид - список, то эта функция будет выбирать пустой список.
0 посетителей, 28 комментариев, 0 ссылок, за 24 часа