Size: a a a

2020 December 12

AP

Aleksei (astynax) Pi... in Haskell Start
Quet Zal
а код не выкладывал никуда?
Да как всегда уж, на гитхабе
источник

AP

Aleksei (astynax) Pi... in Haskell Start
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

парсеры-шмарсеры
источник

AP

Aleksei (astynax) Pi... in Haskell Start
или так :)
decode s = (,) <$> (readMaybe $ take 1 s) <*> (readMaybe $ drop 1 s)
но тут уж громоздко как-то, хотя... можно навернуть "liftA2 (,) <$> ..." (перебор)
источник

K

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

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

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

DB

Danil Berestov in Haskell Start
Kaksisve
Товарищи, не подскажете, какие библиотеки мне стоит использовать?

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

Есть ли аналоги библиотек типа http-client и http-client-tls, которые получают URL в виде Text, а не String? Я нашёл modern-uri для парсинга, но не могу найти нечто похожее на http-client для их отправки.
Насколько мне известно, то для таких целей если не String, то Bytestring. Для http я лично использую http-conduit
источник

K

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

к

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

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

Есть ли аналоги библиотек типа http-client и http-client-tls, которые получают URL в виде Text, а не String? Я нашёл modern-uri для парсинга, но не могу найти нечто похожее на http-client для их отправки.
в самом http-client в реквестах используются ByteString а не String кстати
источник

K

Kaksisve in Haskell Start
Но parseRequest_ :: (...) => String -> Request. :(
источник

K

Kaksisve in Haskell Start
А я хочу Text -> Request.
источник

K

Kaksisve in Haskell Start
Возможно, я не верно поставил себе задачу.
источник

к

кана in Haskell Start
а ну parseRequest это просто функция парсинга, вместо нее можно и свою написать, и modern-uri использовать, в конечном итоге нужно сформировать Request, в котором байтстринги
источник

JS

Jerzy Syrowiecki in Haskell Start
Kaksisve
Товарищи, не подскажете, какие библиотеки мне стоит использовать?

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

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

JS

Jerzy Syrowiecki in Haskell Start
функции, начинающиеся на render
источник

K

Kaksisve in Haskell Start
Я невнимательно прочитал документацию. Сейчас нашёл defaultRequest. Получается, что мне нужно всего лишь его донастроить.
источник

JS

Jerzy Syrowiecki in Haskell Start
да, это лучше
источник

к

кана in Haskell Start
кана
а ну parseRequest это просто функция парсинга, вместо нее можно и свою написать, и modern-uri использовать, в конечном итоге нужно сформировать Request, в котором байтстринги
f :: MonadThrow m => Text -> m Request
f = join . fmap parseRequest . fmap renderStr . mkURI
источник

к

кана in Haskell Start
но количество парсингов на одну простую функцию конечно велико

не факт что просто
parseRequest . unpack
будет хуже
источник

K

Kaksisve in Haskell Start
Теперь задам следующий вопрос. Нормально связывать StateT и ReaderT в рамках одной монады? В самом начале запуска бота мне нужно будет отправить запрос к API, при этом состояние бота на момент отправки запроса ещё не будет проинициализировано, а окружение будет.
источник

к

кана in Haskell Start
не очень понял что значит "связывать", но иметь в стеке стейт и ридер абсолютно нормально
источник

K

Kaksisve in Haskell Start
Я имел ввиду StateT BotState (ReaderT BotEnv ...) ....
источник