Катаморфизмы в теории категорий
От: Ehudi Россия  
Дата: 26.10.07 15:25
Оценка: 20 (4)
Прежде че дать ссылку на сабж, дисклаймер
Системные требования к мозгу программиста
1. Желание;
2. знание основ ФП;
3. умение читать (по английски);
4. знание основ теории категорий ( в объеме Pierce);
5. готовность потратить как минимум неделю на изучение.

Итак, Comprehending queries
http://w3.ub.uni-konstanz.de/v13/volltexte/1999/312/pdf/312_1.pdf

При соблюдении 1-5 можно узнать, какое отношение катаморизмы имеют к F-алгебре, и почему эта F-алгебра обязательно должна быть начальной. Также об их связи с монадами и monad comprehension. И еще много вкусного.
Кстати, Algebra of programming Bird стоит 650 баков на Amazonе, а эта книжка вроде не хуже, и нахаляву.
Просьба не бить ногами, особенно тем, кто не прочитал.
Re: Катаморфизмы в теории категорий
От: Ehudi Россия  
Дата: 30.10.07 16:53
Оценка: 4 (2)
Судя по обилию откликов, карамель оказалась слишком твердой.
Может, кому-то поможет данный пост.
Итак, способ изучить основы теории категорий за месяц.
1. Список литературы
Р. Голдблатт. Топосы. Категорный анализ логики. (очень помогает)
B.C. Pierce. Basic Category Theory for Computer Scientists. (очень помогает)
M.M. Fokkinga. A Gentle Introduction to Category Theory. (помогает)
D.E. Rydeheard. R.M.Burstall. Computational Category Theory. (иногда помогает)
M. Barr. Ch. Wells. Category Theory Lecture Notes for ESSLLI. (иногда помогает)
A. Asperti. G. Longo. Categories Types and Structures. (иногда помогает)
С. Маклейн. Категории для работающего математика.(сложный для программиста, зараза, но иногда помогает).
Вся эта литература есть в сети (google). Более того, есть в сети еще до фига литературы,
в том числе и на русском, просто мне она не помогла.
2. Метод изучения.
Основы теории категорий — это просто список определений. Изучать их надо по одному.
Взять определение некоторого понятия. Посмотреть, что о нем написано во ВСЕХ книгах из списка
литературы. Смотреть в цикле — до тех пор пока не поймешь. Если все равно не понятно,
значит пропустил какое-то определение, которое надо изучить вначале.
Примерный порядок изучения определений:
категория->моно(эпи,изо)стрелки, начальные(конечные объекты),(ко)произведения, уравнители
функторы->естественные преобразования (см. пост Монады в теории категорий)
универсальные конструкции<->(ко)пределы
ну и потом мясо:F -алгебры, сопряженные функторы(adjoints), монады, катаморфизмы...
Re[2]: Катаморфизмы в теории категорий
От: Аноним  
Дата: 30.10.07 20:23
Оценка:
Здравствуйте, Ehudi, Вы писали:

E>Судя по обилию откликов, карамель оказалась слишком твердой.

боже ж ты мой, сколько пафоса! а за ссылки, конечно, спасибо
Re[2]: Катаморфизмы в теории категорий
От: Аноним  
Дата: 31.10.07 08:16
Оценка:
Простите дилетанта.

Чтобы это все читать, какая мне нужна математическая подготовка для начала? Т.е. чтобы разобраться с замечательной и очень мне нужно теорией категорий, не придется ли мне освоить заодно и еще кучу столь же нужных мне и столь же увлекательных областей математики?
Re[3]: Катаморфизмы в теории категорий
От: Quintanar Россия  
Дата: 31.10.07 09:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Чтобы это все читать, какая мне нужна математическая подготовка для начала? Т.е. чтобы разобраться с замечательной и очень мне нужно теорией категорий, не придется ли мне освоить заодно и еще кучу столь же нужных мне и столь же увлекательных областей математики?


Вообще, да. Причем, не абы что, а алгебру (для получения начальных зананий) и основы алгебраической геометрии. ТК была создана для последней, поэтому большинство примеров основываются на ее структурах. Зачем, правда, это нужно — не понятно. ТК полезна для теоретической CS, для практики бесполезна.
Re[4]: Катаморфизмы в теории категорий
От: Аноним  
Дата: 31.10.07 12:58
Оценка:
Q>Вообще, да. Причем, не абы что, а алгебру (для получения начальных зананий) и основы алгебраической геометрии. ТК была создана для последней, поэтому большинство примеров основываются на ее структурах. Зачем, правда, это нужно — не понятно. ТК полезна для теоретической CS, для практики бесполезна.

А для программирования, допустим, на Хаскеле, мне это могло бы пригодиться?
Re[4]: Катаморфизмы в теории категорий
От: Ehudi Россия  
Дата: 31.10.07 16:09
Оценка: 5 (1)
Здравствуйте, Quintanar, Вы писали:

Q>Вообще, да. Причем, не абы что, а алгебру (для получения начальных зананий) и основы алгебраической геометрии. ТК была создана для последней, поэтому большинство примеров основываются на ее структурах. Зачем, правда, это нужно — не понятно. ТК полезна для теоретической CS, для практики бесполезна.


В том то все и дело, что алгебраическую геометрию (или там топологию) знать не нужно.
Да, теория категорий появилась, как ветка в этой математической области.
Но она является настолько общей, что конкретные области являются всего лишь примерами ее использования.
Те книги, которые я отобрал, рассчитаны (кроме Голдблатта) именно на программистов, и там нет примеров
из топологии. В Голдблатте же эти примеры можно смело пропускать, т.к. каждый пример — это просто еще
одна иллюстрация определений теории категорий.
Единственно, неплохо знать моноиды, группы и полугруппы, хотя чего там знать?
Для программистов же важно понимать, что функциональный язык программирования можно рассматривать как
категорию. И дедуктивные логические системы -тоже. Это фундаментальное соответствие, как Вы знаете,
называется изоморфизм Карри-Ховарда-Ламбека.
Используется теория категорий может для написания мощнейших преобразователей программ — оптимизаторов,
которые из неэффективного алгоритма делают эффективный (это катаморфизмы), для создания программ по
спецификациям, (подозреваю) для доказательства правильности программ.
Зная ТК, Вы знаете будущее программирования.
Надо ли знать ее? А надо ли знать теорию множеств? Это база.
Re[3]: Катаморфизмы в теории категорий
От: Ehudi Россия  
Дата: 31.10.07 16:37
Оценка:
Здравствуйте, Аноним, Вы писали:

А>боже ж ты мой, сколько пафоса! а за ссылки, конечно, спасибо


Да я вообще самоучка и мало что знаю,
просто люблю делать вид
Re[5]: Катаморфизмы в теории категорий
От: Аноним  
Дата: 31.10.07 17:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А для программирования, допустим, на Хаскеле, мне это могло бы пригодиться?


Думаю, могло бы. Но не сразу. Это долгосрочное вложение.
Может, Хаскел для этого и создавался?
В злополучной статье в Компьютерре кто-то отсюда писал, что нельзя стать профи в Хаскеле, не зная ТК.
Как именно писать эти программы, сейчас я не знаю.
Но, черт меня побери, разве это не Хаскел
http://www.di.uminho.pt/~mac/Publications/phd.pdf , Глава 6 ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.