Вопросы по теме 'conduit'

Как пронумеровать строки, прочитанные из файла, с помощью каналов?
Я новичок в Haskell и пытаюсь осмыслить библиотеку каналов. Я пробовал что-то подобное, но он не компилируется: import Data.Conduit import Data.Conduit.Binary as CB import Data.ByteString.Char8 as BS numberLine :: Monad m => Conduit...
1240 просмотров
schedule 12.08.2022

Последовательное декодирование двоичных данных с использованием каналов
Цель состоит в том, чтобы иметь канал со следующей сигнатурой типа protobufConduit :: MonadResource m => (ByteString -> a) -> Conduit ByteString m a Канал должен многократно анализировать буферы протокола (с помощью функции ByteString...
660 просмотров
schedule 25.04.2024

conduit и network-conduit: объедините MonadResource и IO
Я экспериментирую с пакетом трубопроводов. Найдя также пакет network-conduit, я попытался сделать простой TCP-клиент, который отправляет содержимое файла в сокет: import Data.Conduit import Data.Conduit.Binary import Data.Conduit.Network import...
351 просмотров
schedule 05.04.2023

Проводник: несколько потребителей потока
Я пишу программу, которая подсчитывает частоты NGrams в корпусе. У меня уже есть функция, которая потребляет поток токенов и производит NGram одного порядка: ngram :: Monad m => Int -> Conduit t m [t] trigrams = ngram 3 countFreq :: (Ord t,...
567 просмотров
schedule 06.05.2023

Отключить проверку сертификата SSL/TLS в Network.HTTP.Conduit
Я использую библиотеку http-conduit версии 2.0+ для извлечения содержимого из URL-адреса http:// : import Network.HTTP.Conduit myurl = ... -- Your URL goes here main = do content <- simpleHttp myurl print $ content При...
1433 просмотров
schedule 16.09.2023

Отсутствует конструктор данных HostAny в Haskell
Я экспериментирую с Conduit Network и не могу скомпилировать этот код, потому что он не может найти конструктор данных: HostAny conduit-extra установлен, поэтому я очень озадачен, почему он не может его найти? {-# LANGUAGE ScopedTypeVariables...
121 просмотров
schedule 24.04.2023

Отсутствует экземпляр MonadIO для ConduitM?
Согласно документации существует MonadIO экземпляр для ConduitM, если у базовой монады есть MonadIO экземпляр ( MonadIO m => MonadIO (ConduitM i o m) ). Почему тогда это: yield (1::Int) $$ await >>= (liftIO.print) :: IO ()...
228 просмотров
schedule 09.04.2023

Правила перезаписи GHC с ограничениями класса
Я добавил следующее правило перезаписи в канал без проблем: {-# RULES "ConduitM: lift x >>= f" forall m f. lift m >>= f = ConduitM (PipeM (liftM (unConduitM . f) m)) #-} Я пытаюсь добавить аналогичные правила перезаписи и...
456 просмотров
schedule 28.12.2022

Как передать `rawRequestBody` в `requestBodySource`?
У Yesod есть rawRequestBody со следующей сигнатурой типа: rawRequestBody :: MonadHandler m => Source m ByteString И у http-conduit есть функция, которая преобразует источник в RequestBody : requestBodySource :: Int64 -> Source...
86 просмотров
schedule 21.12.2022

проводник: создание утечки памяти
Работа над некоторыми наблюдениями по предыдущему вопросу ( haskell-data-hashset-from-unordered-container-performance-for-large-sets ) Наткнулся на странную утечку памяти module Main where import System.Environment (getArgs) import...
147 просмотров
schedule 14.02.2023

Эффективное разделение каналов для строгой строки байтов
Это продолжение этого более раннего вопроса . У меня есть источник канала (от Network.HTTP.Conduit ), который является строгим ByteString . Я хотел бы рекомбинировать их в более крупные фрагменты (для отправки по сети другому клиенту после еще...
156 просмотров
schedule 16.12.2023

Как сохранить файл с помощью Conduit?
Как сохранить файл с помощью библиотеки conduit? Я просмотрел учебник по кабелепроводу, но ничего не нашел, вот мой вариант использования: main :: IO () main = do xxs <- lines <$> (readFile filePath) sourceList xxs =$ pipe $$...
372 просмотров
schedule 30.05.2022

Можно ли установить порядок столбцов для conduit-CSV с помощью NamedRecords?
Мой код ниже. Похоже, что данные выводятся в случайном порядке, что имеет смысл, поскольку NamedRecord — это просто Map . Есть ли способ, которым я могу обеспечить выполнение определенного приказа? Я думаю, что одним из вариантов является...
40 просмотров
schedule 29.01.2023

Как исправить этот код Conduit, вызывающий появление типа списка, которого я не ожидаю?
Я некоторое время боролся с этим кодом Conduit, любая помощь будет очень признательна. Похоже, что этот код эволюционировал в результате случайных мутаций, в то время как средство проверки типов обеспечивает естественный отбор. Вот один из самых...
74 просмотров
schedule 15.01.2023

Слияние исходников с помощью Haskell Conduit
Можно ли в Conduit построить функцию (скажем zipC2), которая бы переворачивала следующие исходники: series1 = yieldMany [2, 4, 6, 8, 16 :: Int] series2 = yieldMany [1, 5, 6 :: Int] в один, который будет производить следующие пары (показанные...
128 просмотров
schedule 25.10.2022

Почему в этой композиции каналов (слияние) присутствует неожиданный ожидаемый тип ()?
У меня есть следующие компоненты трубопровода, которые сплавляются вместе: awaitVals () :: ConduitT (Element mono) (Element mono) m () intermTmp :: forall o. (Element mono -> Bool) -> ConduitT (Element mono) o m ([Element mono]) Слияние...
76 просмотров
schedule 28.07.2022

Почему происходит утечка памяти этого кода при добавлении `bracketOnError`?
Во-первых, я извиняюсь за то, что у меня нет минимального примера (я могу попытаться построить его, но пока у меня есть пример до и после): Сначала после чего происходит утечка памяти: protoReceiver :: RIO FdsEnv () protoReceiver = do logItS...
135 просмотров
schedule 25.10.2022

Монада Haskell RIO внутри постоянной с пулом
Аналогичный вопрос: Haskell/Persistent-Sqlite: нет экземпляр для (Control.Monad.Trans.Resource.MonadResource IO) Я пытаюсь использовать selectSource из persistent для чтения базы данных в потоковом режиме и регистрации значений в консоли с...
65 просмотров
schedule 02.06.2022