Pull to refresh

Comments 25

С нетерпением жду следующих глав.
Если бы это был не перевод, мог бы еще предложить автору писать примеры одновременно на Haskell и С++. Они бы прекрасно дополняли друг друга и сильно облегчали бы понимание: привычный синтаксис С++, но примеры громоздкие; компактный и заточенный под ФП код Haskell — но выносящий неподготовленный мозг синтаксис.
Вы знаете, в оригинале периодически так и есть. Возможно, я попробую дополнить их там, где потребуется.
Кстати, Бартош выступит в феврале на конференции в Москве. Доклад будет как раз про теорию категорий и как раз для C++ программистов :)
Очень советую сходить. Недавно была конференция с его участием в Новосибирске — эмоции только положительные, да и сам формат мне показался довольно интересным.
Рад, что Вам понравилось! Мы очень старались :-)
Для понимания ООП категории тоже полезны.
Если объектами категерии будут классы C++, а морфизмами — static_cast, то виртуальное наследование от невиртуального будет отличаться коммутативностью соответствующего квадрата.
Вы совершенно правы в примере категории! Только врятли этот пример можно назвать очень полезным в понимании ООП, он скорее о потрохах C++, чем об ООП. Да и слишком частный это случай, не тянет на фундаментальную основу языка =)
Есть только один момент, который я не заметил сразу: если диаграмма не коммутативна, то это не морфизм. Так что, морфизмами будут не все возможные static_cast-ы, а только те, для которых она коммутативна.
Имеется в виду транзитивное замыкание всех static_cast.
Отлично, только не понимаю, почему примеры только на C++.
А, ну понятно. Просто из статьи это (мне) не было ясно.

Так что, я приведу много примеров на C++. Конечно, придется преодолеть уродливый синтаксис, и увидеть паттерны будет сложнее из за многословия, и вам, возможно, придется делать много copy-paste, вместо использования абстракций высшего порядка, но это и так большая часть жизни C++-программиста.


После большого количества подобных текстов, так и не понял, зачем теоркат программисту. Обещают революцию, а на деле оказывается, что есть пара паттернов типа монад или стрелок, их можно использовать, конец.
Бартош говорит, что важнейшая польза этих паттернов — легкая и безопасная композиция concurrency и parallelism приситивов.
Я не о том говорю. Паттерны полезные, но какая польза теории категорий при этом. Вот у матана есть польза — вместо библиотечного математического метода X я могу подумать с бумажкой и упростить задачу до метода Y, или посчитать его границы применимости. Довольно редкая польза, надо сказать, но я ее понимаю и несколько раз в жизни я сидел в Maple с упрощением интегралов. А вот теория категорий зачем программисту? Учитывая, что работает он все время в одной категории, в которой объектами являются типы, зачем ему этот обобщающий категории матаппарат.
Пока я в подобных статьях видел только ввод в терминологию (вот видишь этот паттерн, он называется монада в категории, где объектами являются типы данных языка, а стрелками — функции), и все.
Потому, что знать паттерны, но не знать лежащей под ними теории — это быть собакой павлова: жать на кнопки определенным образом при определенных условиях.
Я не нашел в книге Маклейна вообще ничего, что было бы применимо в программировании. Никакой теоремы или приема. Ну диаграммы. Ну коммутативны. Ну и что. Поэтому и спрашиваю.
Поэтому Бартош и затеял писать эту книгу — чтобы донести до программистов на мэйнстрим-парадигмах идеи и пользу от ТК.
Я бы сказал, что еще немного прочищает мозги по теме побочных эффектов у методов (функций). Многие не-функциональщики об этом вообще не задумываются.
1. перевод интересный, книга интересная и буду ждать продолжения
2. а что это за книга (не могу найти не где её упоминания)? Может быть и сам почитаю…

Пока читал поймал себя на мысли что не где не видел простого обзора по современным языкам программирования, и классификации языков программирования и т.п. Я понимаю что многие программисты изучают и знают это (чуть ли не впитывают с молоком матери), но не было бы полезным иметь такой обзор. Так что дарю идею, а сам пошел читать википедию для начала.
Книга в процессе написания, Бартош постит по главе в своем блоге. А я их сюда перевожу.
UFO just landed and posted this here
А она указана, как во всех переводах.
UFO just landed and posted this here
может быть лучше начать не с категорий, а хотя бы с отображений или с отношений с переходом на морфизмы?
Sign up to leave a comment.

Articles