Size: a a a

Elm Lang сообщество разработчиков

2020 May 13

k

kl mw in Elm Lang сообщество разработчиков
ну не все типами меряется
источник

k

kl mw in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
В Elm средств для генерации типов не хвататет!
про это не могу ничего сказать, наверное да)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
"Сделать неконсистентное состояние невыразимым" — вот одна из центральных идей, тут вам и на видео ссылку кинут, если что
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
И эта идея — про типы как раз
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Если вы можете легко менять логику, но не менять типы, то у вас либо слишком узкий кейс, либо "недотипизировано"
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
"недотипизировано" — как раз и есть послабление типобезопасности
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Цена гарантии, что в функцию всегда приходит какой-то словарик и выходит словарик — копейки.
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Это не та типобезопасность, за которой в тот же Elm приходят. Я уж не говорю про Haskell.
источник

MB

Mikhail Bortnyk in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
В Elm средств для генерации типов не хвататет!
Каких, например?
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
data Foo = ...
  deriving FromJSON, ToJSON
источник

k

kl mw in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Цена гарантии, что в функцию всегда приходит какой-то словарик и выходит словарик — копейки.
вы можете накладывать ограничения на этот словарик, типа как в идрисе. и можете доказывать для макросов что функции которые генерируются макросами которые переводят один словарик в другой словарик, выдают корректные словарики
источник

k

kl mw in Elm Lang сообщество разработчиков
типы это не единственный способ получать гарантии для кода
источник

MB

Mikhail Bortnyk in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
data Foo = ...
  deriving FromJSON, ToJSON
хм, кстати, да, тоже пару раз сталкивался, что не хватало
источник

k

kl mw in Elm Lang сообщество разработчиков
kl mw
вы можете накладывать ограничения на этот словарик, типа как в идрисе. и можете доказывать для макросов что функции которые генерируются макросами которые переводят один словарик в другой словарик, выдают корректные словарики
мне бы кстати было бы довольно интересно поработать с чем-нибудь таким
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
kl mw
вы можете накладывать ограничения на этот словарик, типа как в идрисе. и можете доказывать для макросов что функции которые генерируются макросами которые переводят один словарик в другой словарик, выдают корректные словарики
Кароч, у меня нет сил продолжать этот диалог, простите.
Если вы сможете предложить, как "три из трёх получить", индустрия изменится навсегда, а за сим я устраняюсь из этого обсуждения.
источник

k

kl mw in Elm Lang сообщество разработчиков
Aleksei (astynax) Pirogov
Кароч, у меня нет сил продолжать этот диалог, простите.
Если вы сможете предложить, как "три из трёх получить", индустрия изменится навсегда, а за сим я устраняюсь из этого обсуждения.
без проблем! прошу прощения если был излишне напорист, не хотел вас отталкивать от обсуждения. это хорошо что вы говорите об этом
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
:)
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Мой поинт в том, что именно "как сейчас в Haskell" на лету сделать проще, чем это делается в compile time, не получится.

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

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
Clojure с их spec, как раз пытается "типизировать словарики". Но это всё — рантайм проверки
источник

AP

Aleksei (astynax) Pi... in Elm Lang сообщество разработчиков
И таки да, там компилятор частью приложения является таки.
источник