Pull to refresh

Comments 12

Если назвать моноид «полугруппой с единицей», становится не так страшно. Дописал учебник теории категорий
https://github.com/George66/Textbook
А разве так страшно? :) Термин моноид мне нравится больше чем полугруппа с единицей. Второй термин сложный (в лингвистическом смысле) — он состоит из двух понятий, каждое из которых требует определения. Более того, полугруппа — тоже сложный термин, наводящий на мысль о том, что же такое группа, а она, увы, определяется вовсе не так просто и несколько уводит в сторону от понятия моноид.

Алгебраическое понимание моноида очень хорошо ложится на принцип декомпозиции и композиции в программировании. Более того, освоив это понятие, становится проще понять смысл категории, как набора объектов и морфизмов образующих моноид (агебраический) по отношению к композиции. И моноид в теории категории определяется естественно, и вполне понятно почему он там так называется.
Наконец, пресловутая монада, при ясном понимании, что такое моноид становится, наконец, просто специальным способом композиции.

Хорошее слово, ёмкое. И означающее что-то одно и фундаментальное. В «полугруппе с единицей» есть что-то неполноценное, и группа-то наполовинку, и единицы могло бы не быть… :)

Поздравляю с окончанием работы над учебником!
Вот именно потому, что похоже на слово «монада». Полугруппа с единицей — вещь достаточно простая, к монаде сама по себе имеет мало отношения (а к группе много). Группы надо бы знать в любом случае (на популярном уровне книжки с картинками Александрова). Слово «моноид», мне кажется, лучше использовать для некоторого более сложного обобщения (как в книжке Маклейна).
Соглашусь с вами в том, что понимание понятия группы и связанных с ними понятий симметрия и инвариант, не менее важно, чем понимание композиции. Что же, это очень хорошо, что к моноидам можно подойти как со стороны групп, как и со стороны теории категории. И у нас есть выбор своего удобного пути.
Очень клевый у вас учебник, буду везде рекламировать :) Хотя, чувствую, что я так и не пойму адъюнкции и лемму Йонеды. Все эти формулы, диаграммы я конечно понимаю. Но мне не хватает каких-то аналогий из программирования, более конкретных примеров. Например, в своей статье я описывал универсальное свойство, (ко)пределы через поиск минимального или максимального множества в категории множеств. Это очень частный пример, но зато он понятен и от него можно переходить к чему-то более сложному. На мой взгляд, для программистов такой вычислительный взгляд на теорию категорий единственный возможный. Программисты и математики мыслят совершенно по-разному. Я смутно понимаю, что адъюнкции — это частный случай универсального свойства. Универсальное свойство, которые выполняется для всех объектов в категории. Но пока на конкретных множествах в этом не убедишься, всё это пустой звук.

В вашей книге есть глава про исчисление высказываний. С точки зрения программиста это можно использовать для описания семантики языков программирования. Интересно, вам попадались такие примеры? Чтобы для какого-то простенького языка программирования семантика была описана полностью с помощью теории категорий? По денотационной семантике таких учебников полно, а по категориальной ещё ни разу не встречал.
Я сам научился теории категорий, читая несколько лет бестолковую книжку Голдблатта и научные статьи в ГПНТБ. По мере научения пробовал на людях (на маленьком семинаре в МГУ). Ситуация такая: теорию категорий у нас немножко знают алгебраисты, но им нужен довольно специальный кусок для их специальных целей. Что такое «топос», например, они не знали. Я решил примеры брать в основном из самой теории категорий (множества, меняющиеся со временем и т.п.), поскольку красивые картинки, все конструкции наглядны, а специальных программистских примеров я всё равно много не подберу, поскольку не программист. Есть много англоязычных учебников теории категорий специально для программистов — надеюсь, теперь их легче будет переводить.
Бестолковая??? Да это лучшая книга по теоркату которые мне приходилось видеть.

Я бы ваш подход назвал бестолковым и даже вредным, так как изложение нестрогое, без расстановки правильных акцентов на исходных и производных понятиях. В математике нет королвеского пути, нельзя научиться по книжкам для чайников, программистов, инженеров и т.п.
Однако, встречал только одного человека (себя), который сумел научиться по книжке Голдблатта. Вы второй! На русском языке по теоркату есть алгебраические книжки про гомотопии, есть книга Джонстона, по которой учиться нельзя (она для профессионалов) и Голдблатт, в этом смысле он был лучший.
А по поводу программирования с помощью категорий приходит на ум «категорная абстрактная машина» (наберите на libgen фамилию Curien)
Я тоже учился сам, прочитал/пролистал много книг и статей, из которых мало чего понял. Действительно что-то соображать начал только после:
D.E. Rydeheard, R.M. Burstall. Computational Category Theory
H.J. Schneider. Graph Transformations. An Introduction to the Categorical Approach

Curien не читал и про libgen не слышал, спасибо! Есть языки программирования, основанные полностью на теории категорий. Но хочется что-то типа D. Schmidt. Denotational Semantics: A Methodology for Language Development. Только чтобы вместо множеств, доменов и монотонных функций использовалась теория категорий. Чтобы описывался какой-нибудь простой язык программирования буквально с несколькими видами выражений и операторов (объявление переменных, циклы, условия, арифметика). И чтобы описывалось как с помощью теории категорий описать семантику этого языка. Все статьи, какие видел по этой теме, либо слишком сложные, либо в них описываются частности. Ну, видимо, тема пока слишком специфическая, буду пока использовать денотационную семантику.
жОсткий вы человек ) Есть же https://www.gitbook.com/ для таких целей.
Sign up to leave a comment.

Articles