Size: a a a

2020 November 05

TZ

Timofey Zakrevskiy in Haskell
Я пролистал как-то выступление создателей эты, осталось ощущение, что всё оптимистично
источник

AA

A64m AL256m qn<co... in Haskell
Timofey Zakrevskiy
а, собственно, есть что почитать на эту тему, какие там ограничения? Тот же eta ведь сумел что-то выкатить относительно рабочее
ну всеж там производительность в ~10 раз хуже чем нативного кодогена и этот костыль с аннотацией когда хотите тормозную рекурсию, а когда вышибающую стек
источник

TZ

Timofey Zakrevskiy in Haskell
Понятно, спасибо
источник

YR

Yuki Rito in Haskell
можно ли из fields, сгенеренных при помощи makeFields ''SomeShit, создать FromJSON такой, который бы повторял имена этих нагенеренных fields?
источник

AP

Aleksei (astynax) Pi... in Haskell
А разве он не будет по умолчанию?
источник

YR

Yuki Rito in Haskell
FromJSON-то? Хм, не знаю. Если
data SomeShit = SomeShit {
 _someShitAge :: Int
}
makeFields ''SomeShit
то поле будет age, но вот если дерайвнуть дефолтный FromJSON, то едва ли он будет ожидать в словаре ключ "age". Или?
источник

MK

Maxim Koltsov in Haskell
у @qnikst есть опшенс для аесона который примерно такие вещи умеет
источник

YR

Yuki Rito in Haskell
ну я вот написал такую шнягу -

where parseJSON = do
           let prefix = typeOf (undefined :: SomeShit) & show & fromAny & toCamel
               strip = fromMaybe "" . stripPrefix prefix
           genericParseJSON defaultOptions { fieldLabelModifier=strip }

но неясно еще работает ли это. И нет ли стандартного способа, прям из base-а )
источник

IK

Ilya Kos in Haskell
Для такого придумали deriving via
источник

MK

Maxim Koltsov in Haskell
посмотри на пакет aeson-casing
источник

AP

Aleksei (astynax) Pi... in Haskell
Ну да, _someShitAge -> age с помощью опций сделать можно
источник

MK

Maxim Koltsov in Haskell
Aleksei (astynax) Pirogov
Ну да, _someShitAge -> age с помощью опций сделать можно
и нужно
источник

MK

Maxim Koltsov in Haskell
и потом виа
источник

IK

Ilya Kos in Haskell
источник

YR

Yuki Rito in Haskell
ну он умеет убирать "_some", но по-моему не умеет "_someShit"
источник

AP

Aleksei (astynax) Pi... in Haskell
умеет
источник

YR

Yuki Rito in Haskell
Не знал про aeson-deriving :) Смотрим-с...
источник

IK

Ilya Kos in Haskell
А стоп
источник

IK

Ilya Kos in Haskell
Не то кинул
источник

IK

Ilya Kos in Haskell
Ну т е такое тоже есть, но лично я ей не пользовался
источник