Tatiana
В idris в одной из версий тайп классы заменили на интерфейсы. Вот так и пишут теперь interface Show a where
Кабачок
Вроде так же
A64m
они же не когерентные, т.е. вообще не тайпклассы
Tatiana
Честно говоря я не знаю , что значит когерентность в таком контексте. Но для меня выглядит так, что они просто вместо тайп классов ввели понятие interface . В доке они пишут we use interface which is similar to type classes in Haskell or traits in Rust.
Alexander
когерентность = гарантия существование единствкнной реализации для выбранного типа
Alexander
ключевое свойство классов типов
кана
тайпклассы идриса не когерентны из-за именных инстансов что ли?
A64m
да
кана
Так именные инстансы никуда сами неявно не подставляются вроде, вызвать именной инстанс это как явно в ньютайп завернуть и развернуть
кана
Но я не уверен конечно
A64m
по идее, это похоже на каст функции для которой уже инстансы выбраны к функции другого типа, но в хаскеле то в этом случае ролями можно защитить какой-нибудь Set от ломания
Oleg
Мне кажется, они некогерентны не потому что они именные
A64m
ну, там вроде есть и другие причины
A64m
но при наличии именных инстансов нету когерентности просто по определению.
A64m
насколько это проблемно с практической стороны - отдельный вопрос
Oleg
А потому что хз как сделать неэкстенcиональное равенство с когерентностью
Кабачок
но при наличии именных инстансов нету когерентности просто по определению.
А если каждый именованный инстанс представить в виде нового пространства имён неименованного инстанса?
A64m
так какая разница, один инстанс на тип во всем мире, во всех пространствах имен
A64m
вообще этих самых простанств для инстансов уже достаточно для нарушения когерентности, например если можно не имортировать выборочно инстанс из модуля, как можно можно выбирать какие функции из модуля (не) импортировать
Кабачок
Хмм, а в Хаскеле нельзя держать разные инстансы в разных модулях?
A64m
можно, но это неправильная имплементация хаскеля ради того чтоб раздельную компиляцию иметь, т.е. это в большинстве опасных случаев обнаружится в месте применения, но можно и исхитриться и поломать код. т.е. это дырка в гхц и баг с соотв. тикетом. за это сироты и не любят, без них такой проблемы бы не было
A64m
т.е. когерентность в хаскеле можно нарушить при неправильном использовании сирот, оверлапящихся инстансов, ролей, ну понятно unsafeCoerce
A64m
кстати, может в 8.6 или 8.8 дженерики и библиотечные рекорды будут поменьше тормозить компиляцию (но это не точно) https://phabricator.haskell.org/D4766
A64m
опять таки в большем числе случаев чем те, которые действительно опасны
A64m
т.е. нормального точного чека нету, потому что он замедлял бы компиляцию, и считается, что проблемы которые он исключил бы полностью встречаются редко
A64m
вне модуля в котором определен тип или класс
Vladislav
Парсер всё стерпит
Vladislav
Синтаксическая арт-инсталляция
Maxim
JAPH!
Vladislav
x = '[ a, a, a ]
Vladislav
^ а вообще я бы так форматировал
Vladislav
trailing commas > leading commas
Vladislav
А еще так можно скобки мысленно растянуть вертикально на весь столбец, то есть они как в мат. нотации всё подвыражение закрывают. Закрывающая скобка в начале строки это программистское извращение
Alexander
я считаю, что строки должны рифмоваться
Alexander
иначе быстро устаешь когда читаешь код
Alexander
длина строк и количество гекзаметром
Vladislav
хз, я обычно устаю от смысла кода, а не переносов, обычно приходится четыре раза одну строку перечитывать, с такой плотностью инфы не до рифм
Vladislav
но может это я тормозной и у людей другой боттлнек восприятия
Alexander
если честно, то я пошутил
Alexander
(может неочевидно, конечно было)
Vladislav
про синтаксис столько мнений, что шутки распознать невозможно
Alexander
как в го шорошо, остальное плохо
Leonid 🦇
Синтаксический фашизм в го
Alexander
Так, чо тут? Фашизм, токсичность, кибербулинг? Нужна неделя зачисток. От расово неверного оффтопа.
Vladislav
ну да, а то модераторские права без дела простаивают
Alexander
а что тут остались модераторы?
IC
Кто сказал токсичность?!
Dmitry
так, что кого
Anton
ты 800
Anton
поздравляем)
Zhenya
теперь у любого есть возможность покинуть группу и переприсоединиться, чтобы тоже стать 800
A64m
все, DPH убрали
Антон
все, DPH убрали
Как это расшифровывается?
A64m
Data Parallel Haskell
Антон
А почему убрали? Вроде хорошая вещь
A64m
конец 17-илетней эпохи
A64m
потому что некому им заниматься
Евгений
Величайшая книга по сабжу станет наполовину неактуальной, лил
Alexander
о только хотел написать
A64m
чего это наполовину-то?
Alexander
а уже все написано
Alexander
про ParallelArrays
Alexander
там разве про dph было?
Alexander
на векторизацию вектора то ещё надеяться можно что допилят когда-нибудь
Alexander
хотя вроде некому
Ю ли я? 🤔
Величайшая книга - это которая?
Aliester
Vladimir
В величайшей книге по сабжу что-то есть про dph?
andor0
"Собрание трудов академика А.Н. Крылова. Т. 7. Ис. Ньютон. Математические начала натуральной философии" в чуть более лучшем качестве https://www.litres.ru/aleksey-nikolaevich-krylov/sobranie-trudov-akademika-a-n-krylova-t-7-is-nuton-matematicheskie-nachala-naturalnoy-filosofii/
Vladislav
Только б DH так потом не убрали
Vladislav
Хотя его реализуют только лет через 5 в лучшем случае. Я вот хотел кое-что заимплементить, а мне говорят, мол, надо ждать 2 релиза, а то сломаешь людям жизнь
Vladislav
Уже Эйзенберг защитил PhD
Vladislav
Я теперь пытаюсь реализовывать
A64m
DH так просто не убрать, это же и будет сам хаскель практически
A64m
вот недоделать его вполне могут