juan_gandhi: (VP)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2015-03-02 05:10 pm

срезал как у бунина

PavelVelikhov 2 марта 2015 в 07:55
И еще в догонку — дайте пожалуйста формальное определение монады в формализме ZFC а не в теории категорий.

vpatryshev 2 марта 2015 в 09:29

Ну все, Глеб срезал.

ZFC ваше тут ни пришей не пристегни, товарищ оппонент. Монады от теории множеств не зависят.

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

PavelVelikhov 2 марта 2015 в 09:46
О да, срезал, как у Бунина… ZFC со всеми объектами нормально работает, видимо вы не в курсе.

http://habrahabr.ru/post/251747/

[identity profile] nponeccop.livejournal.com 2015-03-03 07:17 am (UTC)(link)

Ну это ж известная вещь. Боттом гадит, с ним пропадает алгебраичность. Он бы ещё удивился некоммутативности or или нарушению x or true = true


Даёшь тотальные языки с санками!

[identity profile] zeit-raffer.livejournal.com 2015-03-03 07:39 am (UTC)(link)
Там не боттом. В той заметке считается, что *хаскельный* моноид, как он описан, не требует ассоциативности (и нейтральности единицы), так что в качестве свободного объекта получаются бинарные деревья, а не списки. Вообще, в языках, где нельзя описывать равенство, привычные структуры существуют в обрезанном виде.

А зачем тотальным санки, чтобы тотальные и ленивые одновременно? Как-то это странно звучит.

[identity profile] nponeccop.livejournal.com 2015-03-03 12:24 pm (UTC)(link)
> А зачем тотальным санки

Некоторые термы меньше памяти едят в процессе CBN-редукции, чем СBV. А так это известный бред, что тотальным санки не нужны. Типа давайте раз порядок редукций не важен, лепить все СBV. Он-то неважен, но только с точки зрения терминируемости (будет терминироваться при любом раскладе). А так вам будет очень неприятно, например, если в ифе будут обе ветви вычисляться, пусть даже при этом зацикливания происходить не будет. Пример - бинарный поиск. Проход всех ветвей тотален, но с точки зрения ресурсов не имеет смысла.

[identity profile] zeit-raffer.livejournal.com 2015-03-03 03:04 pm (UTC)(link)
Всё-всё, уже осознал и исправился.
Попутно осознал, что Агда компилируется в Хаскель именно с ленивыми вызовами. В отличие от Идриса, например, который таки дефолтно строгий. Из-за чего If там имеет вполне ожидаемый тип
(b : Bool) -> (t : Lazy a) -> (e : Lazy a) -> a

[identity profile] juan-gandhi.livejournal.com 2015-03-03 03:09 pm (UTC)(link)
У меня такое ощущение, что дело не в боттоме, а в бесконечных списках. Можно никакого снока не вводить, а просто моноид целых чисел, Z, и ломать голову, где бы взять сумму всех единиц.

А... в Хаскеле это как раз все одно, что боттом...
Edited 2015-03-03 15:10 (UTC)

[identity profile] nponeccop.livejournal.com 2015-03-03 03:18 pm (UTC)(link)
Ну да, отсутствие деления на индукцию и коиндукцию это другая сторона той же медали

[identity profile] nponeccop.livejournal.com 2015-03-03 07:43 pm (UTC)(link)
> в Хаскеле это как раз все одно, что боттом...

не, не всё равно. Определяете instance Num Peano и вперёд, я даже по этому поводу на SO спрашивал

http://stackoverflow.com/q/8474488

Если точнее, проблема не в бесконечных списках, а в отсутствии чисто индуктивных типов, т.е. в отсутствии деления на индуктивные и коиндуктивные типы, как я понимаю.

[identity profile] juan-gandhi.livejournal.com 2015-03-03 07:48 pm (UTC)(link)
О ни фига себе, этого я не знал.

А зачем это все нужно? Или исключительно для ленивости, и потому что termination...
Вот же ж блин.

[identity profile] nponeccop.livejournal.com 2015-03-03 08:57 pm (UTC)(link)
Я думаю, что это получилось само собой. Ну и если рассматривать term graph rewriting systems как семантику хаскеля с паттерн-матчингом (в ЛИ нет паттернов), то там это тоже получается само собой.