Size: a a a

2021 February 25

MP

Misha Puzanov in Haskell
ОТКАТИЛИ
источник

МВ

Максим Воротынский... in Haskell
С алгебраическими типами мне не нравится и я хочу от этого убежать
источник

к

кана in Haskell
ну, нравится или нет это не должно влиять на решение, тут вопрос семантики

если по задумке:
если множество значений известно, а множество методов нет, то это сумма
если множество значений неизвестно, а множество методов да, то это экзист-тип
источник

МВ

Максим Воротынский... in Haskell
Мне по задумке экзист тип
источник

к

кана in Haskell
то есть если с суммой у нас расширяемое множество методов (мы знаем тип, и можем как угодно работать с ним), но нерасширяемое множество значений, то в варианте с экзистом у нас расширяемое множество значений, но работать можно с ним только ограниченным набором операций
источник

МВ

Максим Воротынский... in Haskell
Это я понимаю. Но не знал как второе сделать на Haskell
источник

к

кана in Haskell
нет варианта лучше или хуже другого, они просто с разной задумкой, и использоваться должны в разных случаях
источник

к

кана in Haskell
Bool это всегда сумма, какой-нибудь виджет это всегда экзист, потому что их можно писать юзеру свои
источник

к

кана in Haskell
интересно то, что я часто вижу, что хаскелисты предпочитают часто сумму там, где она не нужна, а какие-нибудь оопшники наоборот делают интерфейсы там где подошел бы аналог суммы, вместо того чтобы использовать то что нужно под задачу

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

к

кана in Haskell
пару лет назад хотел делать доклад по этой вроде бы очевидной теме, с названием типа "поменяйте радикализм на прагматизм", но потом охладел
источник

МВ

Максим Воротынский... in Haskell
Надеюсь я не зря решил переписать DU на экзист тип 😊
источник

OV

O V in Haskell
Вы вот меня извините за, возможно, странный вопрос, но нельзя ли сделать гетерогенный список из неизвестных заранее типов и с неизвестной длиной? То есть типы и длина известны на этапе компиляции, по сути кортежи, однако ни длину, ни типы явно задавать не нужно? Просто интересно
источник

к

кана in Haskell
да, выше мой развернутый ответ на этот вопрос
источник

OV

O V in Haskell
кана
да, выше мой развернутый ответ на этот вопрос
Я его прочитала, насколько вижу, везде типы указываются явно либо наличие какого-то свойства. Вопрос возник именно из этого ответа
источник

МВ

Максим Воротынский... in Haskell
Я просто написал компилятор и у меня AST сделано как DU и мне не комфортно от того, что если я хочу добавить новый вид ноды, то мне придется пересматривать весь код.
источник

MK

Maxim Koltsov in Haskell
что такое DU?
источник

МВ

Максим Воротынский... in Haskell
Алгебраический тип данных
источник

МВ

Максим Воротынский... in Haskell
Я просто до этого на F# писал, там это так называют
источник

к

кана in Haskell
O V
Я его прочитала, насколько вижу, везде типы указываются явно либо наличие какого-то свойства. Вопрос возник именно из этого ответа
если неизвестны ни типы, ни свойства, то как со значением работать?

что можно сделать со значением, для которого можно разве что id вызвать
источник

OV

O V in Haskell
кана
если неизвестны ни типы, ни свойства, то как со значением работать?

что можно сделать со значением, для которого можно разве что id вызвать
Ну типы известны на этапе компиляции. То есть явный тип у нас есть. Через какой нибудь аксессор, берём и делаем map
источник