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