Aleksei (astynax)
Ща они ещё и для Either "правильный" напишут!
A64m
КТО Ж ПИСАТЬ НЕПРАВИЛЬНЫЕ ПРОГРАММЫ С ИХ ПОМОЩЬЮ ЗАПРЕТИТ-ТО?
A64m
Cheese
Cheese
ох. великий хаскельный раскол
A64m
Alexander
ладно у меня совещание скоро, не разругайтесь тут напрочь пожалуйста
Alexander
я вроде уже все тезисы свои назвал, так что пока основные из них старательно игнорируются я все равно в дискуссию ничего не принесу
Cheese
A64m
ФОЛДАБЛ, ЭТО ТАКОЙ ОПТИМИЗИРОВАННЫЙ ЧАСТНЫЙ СЛУЧАЙ ТРАВЕРСАБЛА, ЕСЛИ ПОРТИТЬ ЕГО ИНСТАНСЫ ВЕСЬ ПОДХОД КОМПОЗИЦИИ АППЛИКАТИВОВ ИЗ ПЕЙПЕРА СУТЬ ПАТТЕРНА ИТЕРАТОР ПРТИТСЯ
A64m
Cheese
ну просто всегда математика натягивалась, а с парами внезапно нет
на языке нового Клапауциуса: НЕ БЫЛО НИ ЕДИНОГО РАЗРЫВА
Cheese
вызывает дискомфорт
A64m
УЖ ЧЕСТНО БЫ ССЫЛАЛИСЬ НА ИНТУИЦИЮ ИЗ СКРИПТОПОДЕЛОРК ВСЯКИХ, НО НЕТ, АЛГТД НЕ ТЕ
A64m
A64m
ТАМ ЕСТЬ РЕАЛЬНАЯ ПРОБЛЕМА, ДЛЯ ОСТАЛЬНЫХ ТУПЛОВ НЕТ ТАКИХ ИНСТАНСОВ
Cheese
Alexander
нет
Alexander
нет и ещё раз нет
Alexander
я объяснил алгоритм по которому строится полезный инстанс для любого алг типа
Alexander
в и.ч. тупля любой арности
Alexander
почему-то тебе хочется чтобы один тип работал по другому
Alexander
просто потому что на твоём языке название неудачное
Alexander
вот как должен инстанс для Writer выглядеть?
Alexander
я знаю только один случай, когда оно мешает
Alexander
когда у тебя много кода и ты поменял [] на (а,[])
Cheese
Alexander
и length скомпилировался
Alexander
но такое с любыми классами типов может быть, даже с Num
Alexander
тут правда вероятность повыше
Alexander
для такого можно сделать как у Universum решение
🍅Ťомат
Alexander
А почему?
maximum ("foo", ()) чему равно?
Alexander
причем с учётом параметрического полиморфизма
Alexander
хм сиеста "foo" - MVar ()
Alexander
вместо
Alexander
или прочее для чего Ord нету
Alexander
в паре разные типы в аргументах, их нельзя сравнивать
Alexander
maximum достает максимальное значение во втором аргументе, которое там только одно
🍅Ťомат
🍅Ťомат
Alexander
и.е. maximum (_,x) = x
Alexander
выглядит пугающе, да
Alexander
но если подумать, то это разумное поведение, ну тут ещё всегда нейтральный элемент предлагали возвращать
A64m
это поведение которое позволяет композить, спрашивать зачем максимум для одного значения в тупле считать, это как спрашивать, зачем нужна функция id ведб она ничего не делает же
Зигохистоморфный
жарко тут
Ilya
жарко тут
Зато про хаскель, как заказывали
Ilya
Ilya
Офигенно, спасибо
A64m
теперь надо вот это обсудить
Aleksei (astynax)
Анонимные рекорды в пурсе - приятные
Aleksei (astynax)
Но всё остальное не перевешивают, конечно
Зигохистоморфный
ну как бы и без всяких оберток
getSum . foldMap (foldMap Sum) $ t
Aleksei (astynax)
sum . map sum тоже прокатит
Aleksei (astynax)
Но Compose круче демонстрирует пользу :)
A64m
да, весь этот TEOTIP подход все равно проиграл линзам (точнее был инкорпорирован в линзовый)
adam
Мамины неореакционеры несознательно сужают цикл тематики данного чятика
A64m
интересно, что монады не композятся нормально, но что-то для них всегда накостыливают и используют, а аппликативы-траверсиблы отлично композятся, но никто не композит Ж(((
A64m
еще интереснее, почему их в ghc так и не сделали
A64m
один из немногих случаев когда в хаскеле решили не сделать два способа для одного и того же
A64m
причем, наверное, едиснтсвенный случай, который потом так и не перерешили
Зигохистоморфный
A64m
модули вон сделали и монад компрехеншены вернули, например
A64m
впрочем, в некоторой форме их все-таки добавили, только в виде запчастей, из которых все никак нормальную рекордовую библиотеку не собирут
Зигохистоморфный
A64m
но по рекордам, конечно, такие разногласия были, что иначе чем в виде ведра болтов они в гхц не имеют особых перспектив попасть
Ilya
Зигохистоморфный
Aleksei (astynax)
Нужна синтаксическая поддержка в самом языке.
A64m
что-то вроде паттерн-синонимов-рекордов, которые поддерживают лейблы