А, еще

Sep. 29th, 2018 09:19 pm
juan_gandhi: (Default)
Хаскельщики воображают, что они могут улучшить теорию категорий, путем внедрения каких-то InvariantFunctor (don't ask). 

Драма состоит в том, что хаскельную эту хрень копипастят скальщики - и в scalaz, и в cats эта хрень вставлена.

И это типа канает за науку.

По мне так это наука примерно в таком смысле, как алхимия - хотя, надо признать, что Джон Баэз, с его линейной логикой, вполне теоретическую базу подводит под алхимию. Очень даже неплохую. Но это Баэз. А тут всякую хрень навыдумывал Кмет. Ну вы знаете, есть два сопряженных функтора, Кмет и Киселев. Так я за Киселева. Киселев хотя бы интеллигент. А Кмет жлоб. 
juan_gandhi: (VP)
Среди программистов особенно популярна идея ненавидеть монады. Почему-то именно монады. Стрелки никто не ненавидит, потому что никто не в состоянии даже вообразить их (как квадратный трехчлен). А вот монады - пожалуйста.

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

Возможно, дело в слове "функтор". Никто еще не выступал с критикой функторов. Мол, вы, функциональщики, может, и молодцы, но категория функторов не является локально малой. Или, скажем, раз в хаскеле ковариантности нету (да и в джаве ее маловато), то функторы в энтерпрайзе не нужны. Нет, ничо, терпят.

Хотя даже поклонники монад начинают частенько плеваться и ругаться, если им скажешь про сопряженные функторы. И еще что интересно, вот монада; к ней прилагается категория Клейсли; ее любят. А категорию Эйленберга-Мура не любят, и даже над теми, кто ее регулярно но бессознательно использует (username = if (database.get("username") == null) "" else database.get("username")), смеются как над лохами. Хотя эти две категории - просто два крайних объекта в одной душевной категории, образованной этой монадой.

Ну ладно, "простые программисты" (это для нас они простые) у себя в вузе на последнем курсе в Стэнфорде узнают, что функтор - это просто функция, которая беред функцию и возвращает функцию (интересно, что получится, если ее такую применить к самой себе, будет ли она по-прежнему брать функцию и возвращать функцию, или уже сломается?); в результате чего у них половина дизайн патернов превращается в какой-нибудь функтор, чем они и пугают робких выпускников Аризонского Госуниверситета (в Аризоне функторы не водятся).

Но где-то должна быть такая граница, что до нее они не боятся, а после уже боятся.

Или, может, свободная монада как раз будет этакой тайной тропой через границу, отличающую познаваемое от непознаваемого? Хз.

Комонаду же точно почти все боятся. Хотя (открою секрет) у каждой монады есть своя комонада (и у каждой комонады - своя монада).

Тот же Reader паттерн monad - в большинстве текстов про него я вижу не монаду, а комонаду. Традиция, претендующая на звание культурной, что ж.
juan_gandhi: (Default)
Сегодня вечером на семинаре посмотрели, что Аводи пишет на эту тему; как-то проясняется картинка.

Короче, есть эндофунктор, есть категория алгебр над ним; катаформизм, если он вам нужен, представляет собой морфизм из инициального объекта этой категории (т.е. инициальной алгебры) в вашу алгебру. В смысле, это конус.

Зачем нужен катаморфизм, я как-то не въехал; похоже, людям важно как-то назвать понятный пример.

А вот существование инициальных алгебр - любопытная вещь. По теореме Ламбека (да какая теорема, на пальцах доказывается... но, пока он её не открыл, почему-то не было очевидно) на инициальной алгебре морфизм ТА->T представляет собой изоморфизм; так что эта алгебра заодно - неподвижная точка функтора.

Её существование гарантируется, если функтор сохраняет копределы, и если в категории есть копределы последовательностей. 0 -> T[0] -> T[T[0]] -> ...

В частности, как я понимаю, это всё применимо к полиномиальным функторам. Помнится, год назад я пытался сообразить, как это решать уравнения с полиномиальными функторами. Да через ряд, как учили на уроках диффуров на втором курсе примата.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

July 2025

S M T W T F S
  12345
6789 1011 12
13141516171819
20212223242526
2728293031  

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 13th, 2025 01:18 pm
Powered by Dreamwidth Studios