LINUX.ORG.RU

Теория категорий

 


4

6

Объясните мне, как математику-прикладнику, в чем особая фича теории категорий? Разве это не чисто рефлексивная метаматематическая теория? Да, прикольно, конечно, осознавать, что то, что ты там быдлокодишь это на самом деле всякие морфизмы и монады, но не более.

Приведите пример прикладной задачи, которая существенно упрощается, будучи сформулированной в терминах категорий. Я пока не видел особого применения даже абстрактной алгебры к прикладным областям (исключим из «прикладных областей» ту же разработку трансляторов для языков программирования и связанные области).

Не в толксы, потому что не все, кто может ответить на этот вопрос, туда ходят.

★★★★★

Есть мнение, что все прикладные задачи сводятся к разработке трансляторов. Читай про DSL и language-oriented programming.

anonymous
()
Ответ на: комментарий от anonymous

Есть мнение, что все прикладные задачи сводятся к разработке трансляторов. Читай про DSL и language-oriented programming.

Это мнение уже лет десять на лоре мусолят.

anonymous
()
Ответ на: комментарий от anonymous

все прикладные задачи сводятся

Внесу дополнение. Я понимаю, что все прикладные задачи можно формализовать в терминах категорий, однако всегда ли это приведет к какому-то прогрессивному сдвигу проблем, а не будет пустым лингвистическим упражнением? Аналогично, в принципе, любой итеративный процесс можно свести к чистому рекурсивному, но, порой, мыслить в терминах циклов с мутабельными состояниями проще и лаконичнее. Поэтому, собственно, в CL, как в языке, ориентированном на практику есть и мутабельные переменные, и циклические конструкции.

buddhist ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Ну так на ЛОРе дебилов полно, до которых так и не доходит. Хотя, конечно, глупо метать бисер перед свиньями - до местных свиней это мнение не дойдет никогда в силу их острой интеллектуальной недостаточности.

anonymous
()
Ответ на: комментарий от buddhist

Ну так от теории категорий толк только в той части решения, которая описывает трансляторы DSLей. Для целевых семантик от нее пользы никакой.

anonymous
()

Разве это не чисто рефлексивная метаматематическая теория?

рефлексивная

Чего?

Приведите пример прикладной задачи, которая существенно упрощается, будучи сформулированной в терминах категорий.

Бред. Для использования теории категорий необязательно формулировать что-то в её терминах.

А использовать таки да, полезно. Хотя бы уже семантика Скотта очень помогает разбираться в происходящем.

Miguel ★★★★★
()
Ответ на: комментарий от buddhist

порой, мыслить в терминах циклов с мутабельными состояниями проще и лаконичнее.

Это какие-то узкоспециальные случаи должны быть.

Miguel ★★★★★
()

Есть конкретные вещи, которые полезны. Ты не начинаешь прочитав пару книжек весь код переписывать в терминах теории категорий. Если да, то тебе нечего делать и ты разработчик Scalaz.

Но применить монады иногда полезно вполне, главное без фанатизма. Иногда моноиды можно. Но писать код утыканый на 50% терминами из теории категорий наверное есть смысл только Just For Fun со стаканом виски темными зимними вечерами

vertexua ★★★★★
()

Вот здесь (в конце) пара относительно прикладных применений. Но, думаю, возможность взглянуть на предметную область еще с одной стороны уже делает ТК нужной и полезной.

anonymous
()

Теория категорий помогает там где лямбда арифметика помочь не может. Согласитесь в реально жизненных программах без монад никуда

jamy
()

то, что ты там быдлокодишь

А какая _теория_ нужна для быдлокодинга? По-моему, никакой :) Простейшая линейная алгебра, реляционная алгебра или численные / вычислительные разделы математики понятно как применяются, но это всё отдельные области. А если задаться вопросом какая математическая метатеория годится для изучения программирования в целом, то какой напрашивается ответ? И какие вообще есть варианты? Могут быть разные ответы, ТК отличается тем, что в ней можно смоделировать эти разные варианты и посмотреть как они связаны.

Есть прямая связь типизированного лямбда исчисления и CCC, зависимых типов и LCCC, существуют модели пи-исчисления (которое само по себе шире лямбда-исчисления).

Но сугубо практических применений я не знаю - только бэкграунд, сопутствующая терминология и инструмент для CS теоретизирований (которыми непосредственные инженеры не занимаются). Но, например, если какой-то теоретик докажет что некая метатеория всячески правильна и непротиворечива, то основанный на этой метатеории ЯП тоже будет таким (либо его подмножество, если его чётко выделить), при этом пишущие реализацию люди могут пользоваться той терминологией которую предпочитают, например, категорной.

quasimoto ★★★★
()
Последнее исправление: quasimoto (всего исправлений: 1)
Ответ на: комментарий от Miguel

Для использования теории необязательно формулировать что-то в её терминах.

Слегка поправил, так будет точнее.

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

linuxnewb
()
Ответ на: комментарий от Miguel

Чего?

Это математический метаязык, выведенный «дедуктивно», а не базисная теория, из которой «индуктивно» выведена остальная математика.

// Слова «индуктивно» и «дедуктивно» взяты в кавычки, потому что на самом деле это квази-индукция и квази-дедукция, если говорить о совокупностях теорий.

buddhist ★★★★★
() автор топика
Последнее исправление: buddhist (всего исправлений: 1)
Ответ на: комментарий от vertexua

Но применить монады иногда полезно вполне, главное без фанатизма. Иногда моноиды можно. Но писать код утыканый на 50% терминами из теории категорий наверное есть смысл только Just For Fun со стаканом виски темными зимними вечерами

Я тоже придерживаюсь такого мнения, мне просто интересна аргументация фанатиков теории категорий, которые утверждают, что без нее сейчас никуда :)

buddhist ★★★★★
() автор топика
Ответ на: комментарий от buddhist

Ну без нее о разработчике понятно одно - ему не интересны неизвестные ему вещи в IT и у него достаточно ограниченное мышление чтобы по крайней мере посмотреть и разобраться в том, что так восхваляет большая куча людей. Если бы он разобрался, то тогда мог бы решить надо оно ему или нет.

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Хорошее правило: «если хвалят - верь, разберись, реши для себя, ругают - не верь, разберись, реши для себя»

vertexua ★★★★★
()
Ответ на: комментарий от buddhist

У фанатиков не может быть аргументов, иначе это уже не фанатики.

linuxnewb
()
Ответ на: комментарий от jtootf

На лоре, емнип, была парочка :)

buddhist ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Выкормыш Луговскера в треде, всем в машину Тьюринга!

Ну так на ЛОРе дебилов полно, до которых так и не доходит.

Окей, на ЛОРе полно дебилов, до которых не доходит красота и мощь теории категорий и language-oriented programming.
На Опеннете полно дебилов, до которых не доходит красота и мощь теории категорий и language-oriented programming.
На StackOverflow полно дебилов, до которых не доходит красота и мощь теории категорий и language-oriented programming.
В IBM полно дебилов, до которых не доходит красота и мощь теории категорий и language-oriented programming.
В Oracle полно дебилов, до которых не доходит красота и мощь теории категорий и language-oriented programming.

Весь мир полон дебилов, до которых не доходит красота и мощь теории категорий и language-oriented programming!!!111

И только один ЛОРовский анонимус просветлился и осознал всю красоту и мощь теории категорий и language-oriented programming. Раз так, скажи-ка мне вот что, анонимус. Если верить тебе и подобным кукаретикам — ТК и DSLи должны совершить революцию в программировании, разработка ПО должна стать в 9000 раз эффективнее, затраты в 100500 раз меньше, код на 146% компактнее, а лобковые волосы — мягкими и шелковистыми. Так почему же, анонимус, ты до сих пор не возглавляешь Top100 Forbes и списки нобелевских лауреатов, а вместо этого хлебаешь мамкин борщ и мелешь херню на ЛОРе?

anonymous
()

Прикладной пользы от ТК никакой, зато позволяет смотреть на всех, как на говно.

Вот представь, подходит к тебе начальник с утречка в понедельник, да спрашивает, мол, где обещанный код. А ты ему такой с вертушки про зигохистоморфные препроморфизмы, топосы Гротендика, иерархию Хомского да перцептроны Минского. И смотришь на него, как на говно. Начальник покраснеет, побледнеет, задышит тяжко, но ни слова не скажет и возвратится, шатаясь, в свой кабинет. Сеньоры полопаются от зависти, жуниоры притихнут в благоговении, а девки так просто потекут.

anonymous
()

в чем особая фича теории категорий

А в чем «особая фича» теории множеств? Да, прикольно, конечно, осознавать, что то, что ты там быдлокодишь это на самом деле всякие полугруппы и моноиды, но не более.

Macil ★★★★★
()
Ответ на: комментарий от anonymous

Дебилов, если кто не в курсе, 95% в любой произвольной выборке (даже если выбирать по категории «нобелевские лауреаты»).

Так что гуляй мимо, ничтожная свинья. Я-то LoP применяю, и весьма успешно. Да и во многих успешных проектах его применяют (тот же LLVM посмотри, ничтожество).

anonymous
()
Ответ на: комментарий от buddhist

Ну так она особо и не нужна.

Конечно! И денотационная семантика не нужна. И математика не особо нужна.

Macil ★★★★★
()
Ответ на: комментарий от Macil

Сходите похудейте пожалуйста. Или перечитайте ОП.

buddhist ★★★★★
() автор топика
Ответ на: комментарий от yoghurt

Аноны - красавцы, трэд в закладки.

вместо нормального обсуждения получили очередное соревнование в говнометании, поощряемое ОПом. отличный тред

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

а физику? тоже не слышал? а логику? теорию типов? теорию Галуа?

Про это слышал.

buddhist ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Интересно, а если мне надо вывести на экран форму Торг-12, то как это сводится к разработке трансляторов?

den73 ★★★★★
()
Ответ на: комментарий от den73

то как это сводится к разработке трансляторов

язык описания формы + язык описания содержимого -> язык вывода на экран.

Хотя так всю физику можно ... свести.

Macil ★★★★★
()
Последнее исправление: Macil (всего исправлений: 1)
Ответ на: комментарий от Macil

Это ты описываешь не решение задачи, а разработку способа описания решения. А сам процесс решения как сводится?

den73 ★★★★★
()
Ответ на: комментарий от Macil

так оно так и происходит. только «языки» формализованы в виде набора структур данных и правил их взаимодействия

VladimirMalyk ★★★★★
()
Ответ на: комментарий от den73

Это ты описываешь не решение задачи

Если для тебя решение - появление закорючек на экране, то его тоже описывает транслятор типа язык вывода на экран -> ... -> ... -> язык низкоуровневого управления аппаратурой -> ... -> язык электрических сигналов -> ... -> язык ЭМ сигналов. И так далее, до бесконечности. ::trollface::

Macil ★★★★★
()
Ответ на: комментарий от anonymous

То, что здесь LoP сам собой разумеется.

buddhist ★★★★★
() автор топика
Ответ на: комментарий от VladimirMalyk

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

А процесс описания задачи на таком языке является прикладной задачей?

den73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.