Mar. 28th, 2013
(10x
shosty_fan)
http://www.novayagazeta.ru/politics/57393.html
http://www.ferra.ru/ru/techlife/news/2011/08/22/vkontakte-vse/
Что я там вконтакте делал? да ничего не делал, последний раз заходил полгода назад.
Сейчас пошел и всё удалил.
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
http://www.novayagazeta.ru/politics/57393.html
http://www.ferra.ru/ru/techlife/news/2011/08/22/vkontakte-vse/
Что я там вконтакте делал? да ничего не делал, последний раз заходил полгода назад.
Сейчас пошел и всё удалил.
пара несвязных замечаний
Mar. 28th, 2013 10:37 pm1. У меня на рабочем маке звук пропал во флешке; никакой ютьюб не смотрится - сколько свободного времени! И тишина... Можно, конечно, перебутить, но жалко, у меня всякие там серверы и сервисы запущены. Всё запущено.
2. Про предел забывающего функтора.
Слушайте, ну чо. Ну вот категория, состоит из типов и функций с одним параметром. Куда деть функции двух параметров - ну считайте, что они заданы на парах (если есть два типа, то есть и третий, состоящий из пар).
Ну и вот; а теперь возмём тайпкласс моноидов. Что такое моноид? Это тип, на котором задана бинарная ассоциативная операция (не испугались ещё? бинарная - это два параметра; ассоциативная - это вы в школе проходили). Ну такие типы, моноиды, они же составляют как бы подкласс всех типов. Только нужно ещё, чтобы и функции были, э, инвариантны относительно этой операции: f(a*b)=f(a)*f(b).
Правильнее было бы сказать не "инвариантны", а сохраняющие операцию *.
Моноидов много - и Int со сложением, и Int с умножением, и String с конкатенацией, и Bool с дизъюнкцией - всё это моноиды.
Ну и что, и класс моноидов вкладывается в класс всех типов, так? Это вложение и называется забывающим функтором - потому что тип сохраняется, но забыли, что там была операция.
Теперь что, теперь представим вот эту операцию, отображение моноидов во все типы вообще. Это диаграмма называется (представим картинку, где все моноиды и функции между ними, и эта картинка - часть общей картинки со всеми типами).
У такой фигни вполне может быть предел - то есть, такой универсальный тип, что из него есть функция в каждый моноид (просто функция), которая согласуется с функциями между моноидами (т.е. (X -> MonoidA -> MonoidB) == (X -> MonoidB) и если есть такой же другой тип, тоже с функцией в каждый моноид, согласующимися, как выше - то из этого другого типа есть уникальная функция в X, согласующаяся с набором остальных функций.
Так вот, в случае моноида таким универсальным типом является точка, с функцией в каждый моноид: понятно, что выбирающей нейтральный элемент моноида.
Ну и всё, собственно. Если моноид - список, то эта функция будет выбирать пустой список.
2. Про предел забывающего функтора.
Слушайте, ну чо. Ну вот категория, состоит из типов и функций с одним параметром. Куда деть функции двух параметров - ну считайте, что они заданы на парах (если есть два типа, то есть и третий, состоящий из пар).
Ну и вот; а теперь возмём тайпкласс моноидов. Что такое моноид? Это тип, на котором задана бинарная ассоциативная операция (не испугались ещё? бинарная - это два параметра; ассоциативная - это вы в школе проходили). Ну такие типы, моноиды, они же составляют как бы подкласс всех типов. Только нужно ещё, чтобы и функции были, э, инвариантны относительно этой операции: f(a*b)=f(a)*f(b).
Правильнее было бы сказать не "инвариантны", а сохраняющие операцию *.
Моноидов много - и Int со сложением, и Int с умножением, и String с конкатенацией, и Bool с дизъюнкцией - всё это моноиды.
Ну и что, и класс моноидов вкладывается в класс всех типов, так? Это вложение и называется забывающим функтором - потому что тип сохраняется, но забыли, что там была операция.
Теперь что, теперь представим вот эту операцию, отображение моноидов во все типы вообще. Это диаграмма называется (представим картинку, где все моноиды и функции между ними, и эта картинка - часть общей картинки со всеми типами).
У такой фигни вполне может быть предел - то есть, такой универсальный тип, что из него есть функция в каждый моноид (просто функция), которая согласуется с функциями между моноидами (т.е. (X -> MonoidA -> MonoidB) == (X -> MonoidB) и если есть такой же другой тип, тоже с функцией в каждый моноид, согласующимися, как выше - то из этого другого типа есть уникальная функция в X, согласующаяся с набором остальных функций.
Так вот, в случае моноида таким универсальным типом является точка, с функцией в каждый моноид: понятно, что выбирающей нейтральный элемент моноида.
Ну и всё, собственно. Если моноид - список, то эта функция будет выбирать пустой список.
а вот ещё любопытное явление
Mar. 28th, 2013 11:17 pmТут на просторах в процессе вынесения коллективного приговора Березовскому выяснилось, что до хрена собеседников считают, что воровать в СССР было делом чести советского человека, это была как бы форма антисоветчины и просто проявлением человеческих качеств.
Вынужден громко заявить несогласие. Воры были ворами и при СССР; тот факт, что они грабили награбленное, не реабилитирует их, а скорее оправдывает их в своих глазах и в глазах благодарных потомков, которым в детстве хватало колбаски.
То же относится и к членству в КПСС.
Извините если что.
Я тут недавно спросил у одного доктора (фмн), зав кафедрой, был ли он в СССР членом КПСС. Ничего не ответила рыбка; откуда и следует.