Size: a a a

2020 December 12

к

кана in Haskell Start
да, абсолютно нормально
источник

JS

Jerzy Syrowiecki in Haskell Start
можно довесить состояние позже
источник

к

кана in Haskell Start
есть один нюанс, в такой реализации (со StateT) бот может быть только синхронным, то есть запросы к нему со всех клиентов могут выполняться только один за одним
источник

к

кана in Haskell Start
поэтому возможно есть смысл посмотреть на STM
источник

K

Kaksisve in Haskell Start
кана
поэтому возможно есть смысл посмотреть на STM
Я пока не готов к этому. Но возьму на заметку.
источник

K

Kaksisve in Haskell Start
Я только учусь использовать трансформеры на практике.
источник

JS

Jerzy Syrowiecki in Haskell Start
do
 initInReader
 actionInReader
 runStateT (actionInStateReader) state
источник
2020 December 13

AP

Artem Pelenitsyn in Haskell Start
Aleksei (astynax) Pirogov
data Cmd = N | S | E | W | L | R | F deriving Read

decode :: String -> Maybe (Cmd, Int)
decode s = do
 (c : n) <- pure s
 (,) <$> readMaybe [c] <*> readMaybe n

парсеры-шмарсеры
а зачем тут pure s перед паттерн-матчингом? это же не поможет от ошибки во время выполнения, если строка пустая...
источник

A

Aleksandr Khristenko in Haskell Start
Artem Pelenitsyn
а зачем тут pure s перед паттерн-матчингом? это же не поможет от ошибки во время выполнения, если строка пустая...
А там разве не фейл произойдет, который станет nothing?
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Artem Pelenitsyn
а зачем тут pure s перед паттерн-матчингом? это же не поможет от ошибки во время выполнения, если строка пустая...
> safeHead l = do { (x:_) <- pure l; pure x }
> safeHead [] :: Maybe Int
Nothing
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Неудачный матчинг даст fail, MonadFail для Maybe даёт Nothing
источник

ХГ

Хаскелль Моисеевич Г... in Haskell Start
Kaksisve
Товарищи, не подскажете, какие библиотеки мне стоит использовать?

Я пишу бота для ВК, и мне часто приходится сооружать запросы к API ВК с длинными URL. Сейчас я это делаю с помощью String и printf, но хочу попробовать перейти к Text (просто потому, что хочется).

Есть ли аналоги библиотек типа http-client и http-client-tls, которые получают URL в виде Text, а не String? Я нашёл modern-uri для парсинга, но не могу найти нечто похожее на http-client для их отправки.
Ставьте req Марка Карпова. Там всё будет идиоматически. Особенно в url. Url это не Text и не String, а что-то совсем другое...
источник

ХГ

Хаскелль Моисеевич Г... in Haskell Start
источник

AP

Aleksei (astynax) Pi... in Haskell Start
req оборачивает http-client как раз. А вообще можно и servant взять в какой-то момент, когда типизации мало покажется. Но начинать можно с голого http-client
источник

ХГ

Хаскелль Моисеевич Г... in Haskell Start
Карпов делает акцент на удобстве и correctness сооружения длинных урелов.
источник

A

Aragaer in Haskell Start
ух, во второй части получил неправильный ответ, потому что Int-а не хватило
источник

AP

Artem Pelenitsyn in Haskell Start
Aleksei (astynax) Pirogov
> safeHead l = do { (x:_) <- pure l; pure x }
> safeHead [] :: Maybe Int
Nothing
Спасибо! Интересно. Я написал в GHCi нечто как я думал аналогичное, оно дало ошибку. Что-то вроде (\(c:s)-> pure c) =<< Just ""
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Так тут функция частичная
источник

AP

Aleksei (astynax) Pi... in Haskell Start
байнд не виноват, что она такая :)
источник

AP

Artem Pelenitsyn in Haskell Start
А как без do переписать ваш пример?
источник