Size: a a a

2021 November 01

AP

Aleksei (astynax) Pi... in Haskell Start
Это явное указание типа
источник

E

Elijah in Haskell Start
вместо ::?
источник

AP

Aleksei (astynax) Pi... in Haskell Start
TypeApplications расширение
источник

E

Elijah in Haskell Start
красиво
источник

AP

Aleksei (astynax) Pi... in Haskell Start
вместо
(parse x :: Parser X)
пишете
parse @X x
источник

E

Elijah in Haskell Start
Как это можно генерализовать?
источник

E

Elijah in Haskell Start
то есть я-то могу сделать newtype который будет хранить Either String Double, но не могу понять как мне сделать для Either a b, ведь заранее не знаешь что надо будет withText или withObject
источник

AP

Aleksei (astynax) Pi... in Haskell Start
newtype ChoiceBetween a b = ChoiseBetween (Either a b)

instance (FromJSON a, FromJSON b) => FromJSON (ChoiceBetween a b) where
 parseJSON v =
   ChoiceBetween <$> (
     (Left <$> parseJSON v)
     <|>
     (Right <$> parseJSON v)
   )
источник

AP

Aleksei (astynax) Pi... in Haskell Start
попробует раскодировать в первый тип, потом во второй
источник

E

Elijah in Haskell Start
хм
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Минус в том, что условный ChoiceBetween Int Int всегда будет декодировать в первый вариант. Инстанс для Either использует явные метки, поэтому там попроще, но ценой усложнения структуры JSON
источник

НА

Николай Андреевич... in Haskell Start
Большое спасибо.
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Всегда пожалуйста :)
источник

E

Elijah in Haskell Start
Спасибо
источник

E

Elijah in Haskell Start
и все таки почему не работает с read?
источник

E

Elijah in Haskell Start
то есть вот здесь вот если я оставляю Either , а read этапом позже, то это работает
источник

E

Elijah in Haskell Start
а если read то все
источник

E

Elijah in Haskell Start
думаю в моем случае проще просто это поле не использовать
источник

[

[BRM]White Rabbit in Haskell Start
рид исключения кидает
источник

E

Elijah in Haskell Start
но он ведь их не кидает когда вытаскиваешь ту же строку из Left?
источник