Size: a a a

2020 May 03

G

Gymmasssorla in // CIPHERNET
и типизация в языках неравзсита совсем
источник

M

MrSmith in // CIPHERNET
Зачем вообше в языках есть экспрешенны раз на типах все можно писать
источник

M

MrSmith in // CIPHERNET
Охуенно же было бы
источник

G

Gymmasssorla in // CIPHERNET
MrSmith
Зачем вообше в языках есть экспрешенны раз на типах все можно писать
ну вообще типы - это значения
источник

G

Gymmasssorla in // CIPHERNET
в зав. типизации
источник

M

MrSmith in // CIPHERNET
Нет
источник

M

MrSmith in // CIPHERNET
Верней в норм программированни нет
источник

G

Gymmasssorla in // CIPHERNET
ну в зав. типизации да, это позволяет делать логику на типах и больше проверять в компайлтайме
источник

M

MrSmith in // CIPHERNET
Дак в чем проблема юзать компайл тайм вычисления и метопрограммирование где она надо
источник

M

MrSmith in // CIPHERNET
А гарантии типов там где оно надо
источник

G

Gymmasssorla in // CIPHERNET
MrSmith
Дак в чем проблема юзать компайл тайм вычисления и метопрограммирование где она надо
источник

/dev/urandon ¯\_(ツ)_... in // CIPHERNET
MrSmith
Зачем вообше в языках есть экспрешенны раз на типах все можно писать
Вообще-то ErrorMonad давно придумали
источник

M

MrSmith in // CIPHERNET
Нахуя вычислять факториал на типах если можно написать декларативный код
источник

G

Gymmasssorla in // CIPHERNET
MrSmith
Нахуя вычислять факториал на типах если можно написать декларативный код
ну вообще это тоже декларативно получится
источник

M

MrSmith in // CIPHERNET
Gymmasssorla
1) https://github.com/Hirrolot/demux-stream сделал на типах, вышло 20 строк, делал на макросах - 200+ строк непонятно что делающих (к ним нужна хорошая документация что они делают)

2) почему логика на типах плохо? на логике на типах все продвинутые гарантии и делаются.

3) ну вот в расте его некруто применяют, их слишком много, потому что можно было выразить типами - почему см. выше

4) почему типы не расширяются я так и не понял. можно подтипами сделать расширяемость
1) это ты сделал так другой бы может так же сделал в 20 строк и один кейс не показатель
2)потому что логику можно использовать с разными типами как пример а если тайп дравен то у тебя тип в семейство должен входить
3)потому что не развили пока
4)потому что типы отражают данные и плохо когда у тебя появляются промежуточные типы что бы выразить состояния или действие
источник

M

MrSmith in // CIPHERNET
Хз блять не вижу в этом смысла даже хаскель хоть и обладает мощной системой типо много что пишется императивно а не декларативно
источник

G

Gymmasssorla in // CIPHERNET
MrSmith
1) это ты сделал так другой бы может так же сделал в 20 строк и один кейс не показатель
2)потому что логику можно использовать с разными типами как пример а если тайп дравен то у тебя тип в семейство должен входить
3)потому что не развили пока
4)потому что типы отражают данные и плохо когда у тебя появляются промежуточные типы что бы выразить состояния или действие
1) давай ты сделаешь также просто на макросах, я посмотрю
2) так и делают, логика на типах
3) развивают, я говорю в общем
4) эм, ну так верифицированные автоматы и делают
источник

M

MrSmith in // CIPHERNET
Самый главный аргумент код на типах сложный
источник

G

Gymmasssorla in // CIPHERNET
ты верифицированный автомат без типов которые указывают на состояние не напишешь скорее всего
источник

G

Gymmasssorla in // CIPHERNET
MrSmith
Самый главный аргумент код на типах сложный
ну так он проще выходит лол
источник