Size: a a a

2020 October 28

к

кана in Haskell
если с интом еще все ок, то вот с другими типами уже не оч
источник

IK

Ilya Kos in Haskell
Без привязки к хаскелю
источник

к

кана in Haskell
я в таких случаях свой парсер пишу
источник

к

кана in Haskell
реверсишь, читаешь символ-цифру, отнимаешь 48, умножаешь на результат, пока строка не пуста
источник

к

кана in Haskell
а, можно даже не реверсить
источник

к

кана in Haskell
вроде все кейсы предусмотрел

parseInt :: String -> Maybe Int
parseInt str =
 case str of
   "" -> Nothing
   '-' : rest -> negate <$> parsePositive rest
   _ -> parsePositive str
 where
   parsePositive = fmap (foldl appendDigit 0) . traverse parseDigit

   parseDigit :: Char -> Maybe Int
   parseDigit char = do
     guard $ char elem ['0' .. '9']
     pure $ ord char - 48

   appendDigit :: Int -> Int -> Int
   appendDigit number digit = number * 10 + digit
источник

к

кана in Haskell
как же хочется иногда флипнутый foldr, это же так неудобно чаще всего, когда функция первым аргументом
источник

к

кана in Haskell
хочется [a] -> b -> (a -> b -> b) -> b
источник

JS

Jerzy Syrowiecki in Haskell
для инта чем read не подходит?
источник

JS

Jerzy Syrowiecki in Haskell
@ulysses4ever мне вообще непонятно существование microlens, почти всегда чего-то не хватает, что есть в lens
источник

AP

Artem Pelenitsyn in Haskell
Jerzy Syrowiecki
@ulysses4ever мне вообще непонятно существование microlens, почти всегда чего-то не хватает, что есть в lens
Спасибо, это любопытно. Я пока обошёлся без линз в той конкретной задаче, в паре других (не более сложных) мест хваило micro. Посмотрю как пойдёт: возможно, переключусь на lens, действительно. Спасибо!
источник

AA

A64m AL256m qn<co... in Haskell
Jerzy Syrowiecki
@ulysses4ever мне вообще непонятно существование microlens, почти всегда чего-то не хватает, что есть в lens
разгадка простая: депфобия
источник

JS

Jerzy Syrowiecki in Haskell
A64m AL256m qn I0
разгадка простая: депфобия
но на практике получается, что microlens + lens дают больше зависимостей, чем lens
источник

AA

A64m AL256m qn<co... in Haskell
Jerzy Syrowiecki
но на практике получается, что microlens + lens дают больше зависимостей, чем lens
ну так фобии иррациональны. когда кто-то хочет чтоб было меньше зависимостей - тут никакой фобии нет, когда судорожно пытается с ними бороться увеличивая при этом их количество - вот это как раз депфобия
источник

AP

Artem Pelenitsyn in Haskell
а ещё глупый вопрос: если есть структура залинзованная с "_полями", и я хочу её из JSON читать, в котором ожидаются обычные "поля" (без _), можно что-то сделать чтобы руками не писать инстансы FromJSON? До линзования с обычными именами прекрасно работали Generic-версии FromJSON…
источник

AA

A64m AL256m qn<co... in Haskell
можно
1) и в линзовом и в жсоновом тх-кодогене параметрами такие вещи в именах настраивать
2) дженерик-ленз чтоб для рекордов с дженерик инстансами линзы получать
источник

MK

Maxim Koltsov in Haskell
Я определяю свой ньютайп который вызывает genericFromJson с опциями которые у меня везде и потом дерайвлю через via
источник

AA

A64m AL256m qn<co... in Haskell
или так да
источник

AP

Artem Pelenitsyn in Haskell
спасибо за ответы! из того, что сказали, я понял пока только generic-lens: возможно, мне этого хватит 😊
источник

MK

Maxim Koltsov in Haskell
A64m AL256m qn I0
можно
1) и в линзовом и в жсоновом тх-кодогене параметрами такие вещи в именах настраивать
2) дженерик-ленз чтоб для рекордов с дженерик инстансами линзы получать
А как у дженерик ленз с производительностью?
источник