2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение24.02.2019, 11:54 
То есть можно сформулировать следующую гипотезу. Программисту действительно полезно прочитать эту книгу, а также, возможно, ряд других книг книг, в названии которых упоминается "теория категорий". Из этого делается ошибочный вывод, что программисту полезно иметь хотя бы самое поверхностное представление о теории категорий.

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение24.02.2019, 13:15 
По моему (не маленькому) опыту, теория категорий математиками используется так: $10 \%$ --- по делу, а $90 \%$ --- для произведения впечатления на девушек и других неосведомленных людей (цифры, конечно, весьма условные). Или для надувания щек перед самим собой. В программировании, вероятно, это соотношение еще более драматическое.

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение24.02.2019, 13:59 
Аватара пользователя
warlock66613 в сообщении #1378054 писал(а):
Тут на Хабре проскочила интересная ссылка на книгу Category Theory for Programmers
. Судя по оглавлению, эта книга не является учебником теории категорий, и вот именно её программисту почитать не помешало бы - по крайней мере такому, кто уже начал осваивать хотя бы один функциональный язык (хотя бы тот же F#).
warlock66613 в сообщении #1378062 писал(а):
То есть можно сформулировать следующую гипотезу. Программисту действительно полезно прочитать эту книгу, а также, возможно, ряд других книг книг, в названии которых упоминается "теория категорий". Из этого делается ошибочный вывод, что программисту полезно иметь хотя бы самое поверхностное представление о теории категорий.

Тогда отношение теории категорий ($\text{ТК}$) к "теории категорий для программистов" (приложение ТК, то есть $\text{П(ТК)}$) немного напоминает отношение Теории Упругости ($\text{ТУ}$) к сопромату ($\text{П(ТУ)}$). Сопромат тут неоднократно обсуждался

Вот вам, дети, монады -- с помощью них мы будем рассчитывать арки читать файлики.
Вот вам F-Алгебры, с помощью них мы будем суммировать дерево.
Вот вам коммутативные диаграмы, с помощью них мы будем иллюстрировать свои мысли и сойдём за умных :mrgreen:

$$
\xymatrix{
    \text{П(ТК)} \ar[rr]^{\text{П(?)}}   & & \text{П(ТУ)}         \\
\\
    \text{ТК} \ar[rr]^{\text{?}} \ar[uu] & &  \text{ТУ} \ar[uu]
}
$$

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение24.02.2019, 14:10 
Аватара пользователя
vpb в сообщении #1378070 писал(а):
По моему (не маленькому) опыту, теория категорий математиками используется так: $10 \%$ --- по делу, а $90 \%$ --- для произведения впечатления на девушек и других неосведомленных людей (цифры, конечно, весьма условные). Или для надувания щек перед самим собой.

Я подозреваю, в начале 20 века примерно то же можно было сказать про функциональный анализ, или про бескоординатную дифференциальную геометрию многомерных многообразий.

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение24.02.2019, 17:14 
_Ivana в сообщении #1377870 писал(а):
Нормальная и аппликативная стратегии редукции лямбда-термов вводятся чуть ли не с первых страниц любого букваря. Приоритетный левый внешний редекс или левый внутренний редекс, и т.п. Теоремка даже на этот счет есть - что если терм достиг нормальных форм по нормальной и по аппликативной стратегиям, то эти формы совпадают с точностью до альфа-конверсии. В Хаскеле смешанная стратегия колл бай нид - до вик хэд нормал форм, если аргументы конструктора типа не помечены как строгие, о чем уже неоднократно писали выше. Сколько можно писать простыни глупостей ученому соседу?

Было бы интересно понять, в каком месте лямбда исчисления можно найти указание на соответствие понятий "call by need", "call by value" и "call by reference" чему-то из приведенного выше занимательного текста.

-- 24.02.2019, 18:22 --

Munin в сообщении #1378082 писал(а):
Я подозреваю, в начале 20 века примерно то же можно было сказать про функциональный анализ, или про бескоординатную дифференциальную геометрию многомерных многообразий.

Я читал статьи про использование терминов из теории категорий в применении, например, к экспорту/импорту данных из одной БД в другую. Суть очень короткая - назвали одну базу одной категорией, вторую второй, указали, что экспорт/импорт является функтором, и всё. Далее - весь экспорт/импорт предлагается сделать кому-то другому (но на новом уровне понимания, очевидно).

Некоторое обобщение ряда понятий из разных теорий действительно интересно, но в применении к программированию я ничего более интересного, чем переименование известных задач пока не встречал. Хотя да, я не читал всех статей по теории категорий и даже наверняка некие обобщения могут реально упростить какие-то моменты в программировании, но пока что все ссылки, которые я находил в отношении применимости ТК к программированию вели в лучшем случае к предложениям вроде описанного выше экспорта/импорта. Хотя может я чего-то не понял. Но экспорт/импорт пока что точно не упростился.

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение24.02.2019, 22:16 
Munin в сообщении #1378082 писал(а):
Я подозреваю, в начале 20 века примерно то же можно было сказать про функциональный анализ, или про бескоординатную дифференциальную геометрию многомерных многообразий.
Нет. "Теория" категорий --- это язык, и система весьма общих, почти философских, понятий. Обычно она на нужна; случается, удобна; иногда совершенно необходима. А функан и дифгем с самого начала были трудными содержательными науками.

Впрочем, бывают категории не как средство языка, а конкретные алгебраические системы, типа групп. Где одно в другое плавно перетекает --- не вполне определенно. Еще бывают $n$-категории. Это уже совсем конкретная математика, а не язык.

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение25.02.2019, 14:20 
Я почитал упомянутую книгу. Всё-таки она оказалась учебником по теории категорий. То есть изложенное в первой главе ещё претендует на связь с программированием, но начиная со второй примеры на C++ исчезают, а роль примеров на Haskell инвертируется: не теория категорий объясняет суть кода, а код объясняет теорию категорий (а зачем такой код вообще имеет смысл писать, не объясняется). Единственное исключение - пляски вокруг монад (и немного комонад), но и тут неясно, даёт ли это что-то новое для практического применения этих концепций по сравнению с примитивным пониманием. В итоге, роль теории категорий в основном сводится к помощи в поиске названий (если что-то похоже на функтор - назовём это функтором).

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение25.02.2019, 20:56 
warlock66613 в сообщении #1378324 писал(а):
Я почитал упомянутую книгу. Всё-таки она оказалась учебником по теории категорий.

Вообще я встречал несколько книг с подобными названиями - для программистов, для математиков, для учёных. Но все про теорию категорий. Видимо маркетинг такой - выделять целевую аудиторию и как-то привлекать её, например названиями. Хотя не скажу, что плохо пишут, но просто знаю, что это всё довольно живой бизнес, где автор пусть и не так много, но зарабатывает. Чуть более яркий пример - The Complete Idiot's Guide to Microsoft Access 97. Тоже люди зарабатывают, и даже аудиторию прямо в лицо называют, ведь аудитории действительно нужно по быстрому получить результат, вот им и подсказывают.
warlock66613 в сообщении #1378324 писал(а):
В итоге, роль теории категорий в основном сводится к помощи в поиске названий

Может когда-нибудь за счёт перехода от рисования разного рода блок-схем к написанию неких выражений, как это было в своё время при переходе от чистой геометрии к её алгебраическому варианту, что-то да получится.

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение25.02.2019, 21:23 
warlock66613
Ну вот разговоры про codensity monad, например, по-моему, не просто «мы нашли идею совершенно без теорката и потом уже увидели её и там и взяли оттуда имя». Кажется, там какие-то категорные результаты как минимум облегчали понимание (я дотуда ещё не дошёл, так что у меня нет понимания, чтобы облегчать). На эту тему много писал среди прочих Edward Kmett (хотя немудрено, он автор соответствующего пакета).

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение25.02.2019, 21:42 
arseniiv, это так, но обсуждаемая ситуация отлична от той, что в этой истории, сразу в двух аспектах: 1) монады уже изобрели, широко применили, и объяснили уже на самом примитивном уровне; 2) я не знаю, сколь это верно в отношении rockclimber, но я - не Edward Kmett, и ТС, скорее всего, тоже.

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение26.02.2019, 11:17 
Что-то я значит опять запутался в контексте. :-)

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.03.2019, 04:57 
Патрышев от монад балдеет, а программирует на Scala. Кстати, он дружок Бартоша Милевского.
https://juan-gandhi.dreamwidth.org/
А так, не знаю, нужна ли программистам теория категорий. Если бы с редукциями лямбда-термов как-нибудь разобраться, чтобы термы представлять разноцветными схемами и строить в каком-нибудь графическом редакторе (а лучше вязать виртуальным крючком). Тогда бы можно было быстро навязать много надёжного и красивого кода.

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.03.2019, 11:59 
Да ну, лямбда-исчисление — это же тьюринговская трясина, на ней можно-то конечно всё, но это будет долгое велосипедение, тем более для хоть какой-то эффективности надо будет добавлять разные примитивы туда, да и какие-то расширения языка (хотя бы let, который в классическое не входит). Да и, надеюсь, вы имели в виду типизированное, потому что какой толк от бестипового для надёжности кода, непонятно. :-)

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение21.03.2019, 13:11 
Аватара пользователя
george66 в сообщении #1383266 писал(а):
Патрышев от монад балдеет, а программирует на Scala. Кстати, он дружок Бартоша Милевского.

Вот интересная фраза. Мне сразу пришло в голову, что отдельная личность в математике значит многое, а в программной индустрии - почти ничего. Надо привлечь на свою сторону заметную долю проектов - только тогда это хоть как-то прозвучит.

 
 
 
 Re: Теория категорий, Haskell и программирование вообще
Сообщение22.03.2019, 11:12 
george66 в сообщении #1383266 писал(а):
много надёжного и красивого кода

За красивость соглашусь, писал в свое время визуализированные редукторы

Изображение


А насчет надежности - сомнительно имхо. Только будем тогда писать формально корректные а фактически ошибочные и неэффективные алгоритмы :D

 
 
 [ Сообщений: 92 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group