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

как добавить новый источник внутри канала haskell
У меня возникла проблема со следующим кодом, использующим network-conduit : import Data.Conduit.List as CL import Data.Conduit.Text as CT import qualified Data.ByteString.Char8 as S8 import qualified Data.Text as TT mySource :: ResourceT m...
336 просмотров
schedule 12.11.2023

Вложенные области ResourceT в канале Sink
Есть ли способ ограничить runResourceT сроком службы одного Sink ? Я пытаюсь построить Sink , который обертывает потенциально бесконечное количество Sinks . Это отлично работает с потоками, но я пытаюсь сделать это без потоков. Кажется, это...
311 просмотров
schedule 01.06.2022

Как собрать вывод из каналов в файл в Haskell
У меня есть канал производителя, и я использовал канал печати. Я хотел бы записать вывод в файл. Если я использую Control.Data.sinkFile, например test2file = runPipe $ CB.sinkFile "testOutput" <+< traverseTree fn3 Я получаю ошибку...
321 просмотров
schedule 19.07.2022

кабелепровод и розетки: разрешить несколько подключений
Вот некоторый код, реализующий небольшой принимающий сервер с использованием conduit , network-conduit и stm-conduit . Он получает данные в сокете, а затем передает их через STM-канал в основной поток. import Control.Concurrent (forkIO)...
482 просмотров
schedule 25.05.2022

Пример Haskell bzlib-conduit/zlib-conduit
Предположим, мы создали файл a.txt.gz следующим образом: $ echo "foobar" > a.txt $ gzip a.txt Я намерен использовать zlib-conduit для эмуляции zcat в Haskell. Я ищу простой пример, который также можно применить к bzlib-conduit...
262 просмотров

Идиоматический обход каталога io-streams
Я обсуждал код на Reddit , и мне стало любопытно о том, как это будет реализовано в io-streams. Рассмотрим следующий код, который проходит через структуру каталогов и выводит все имена файлов: import Control.Exception...
309 просмотров
schedule 30.07.2022

Почему это вызывает утечку памяти в библиотеке Haskell Conduit?
У меня есть конвейер pipeline , обрабатывающий длинный файл. Я хочу печатать отчет о проделанной работе для пользователя каждые 1000 записей, поэтому написал следующее: -- | Every n records, perform the IO action. -- Used for progress reports to...
622 просмотров
schedule 20.04.2023

Выражение чтения простого файла Conduit без проверки типов
Я пытаюсь получить пример простого канала , но у меня не получается этап проверки типа. В этом примере я видя, как ResourceT используется в качестве "исполнителя" канала, если это имеет смысл. Я также знаю, что в течение некоторого времени...
306 просмотров
schedule 05.08.2023

Повторное использование sinFile с Haskell Conduit
Я хочу отправить список фотографий на приемник, чтобы сохранить их на диске. Каждая структура Photo содержит поле content типа lazy ByteString. В основном я хочу сделать что-то вроде этого: CL.sourceList photos $$ sinkPhotos Я хотел бы...
197 просмотров
schedule 02.07.2022

SHA256 загруженный файл в Yesod — использование Conduit и Data.Digest.Pure.SHA
Я обрабатываю загрузку файла с помощью yesod и хотел бы сохранить загруженный файл в файл на моем сервере с именем SHA256 содержимого. Я думаю, что функция уровня обработчика будет выглядеть так: fileMove fInfo (basePath <> generateSha...
195 просмотров
schedule 17.04.2022

Как моделировать вложенные потоки с каналами?
Допустим, нам нужно просуммировать группы чисел, хранящиеся в файле, где группы разделены пустой строкой. Так 1 2 3 4 5 должен привести к 6 9 . Кажется естественным смоделировать это с помощью вложенных каналов: внешний канал будет...
371 просмотров
schedule 06.01.2024

Haskell Conduit из процесса захвата как stdout, так и stderr
Существует ли канал Haskell, который может выполнять процесс и захватывать его потоки stderr и stdout (отдельно)? Возможность передать stdin в процесс была бы идеальной, поскольку канал тоже был бы идеальным, но не требованием (для этого я могу...
347 просмотров
schedule 15.03.2024

Почему Conduit и Pipe не могут иметь экземпляр Arrow?
На Reddit есть заархивированная ветка, в которой говорится, что, по сути, трубопровод / трубы не могут быть стрелками, потому что стрелки должны быть синхронными. Ветка связана здесь...
445 просмотров
schedule 12.10.2023

Как объединить отношения ввода-вывода «один-к-одному» и «один-ко-многим» в канале?
Я уже некоторое время борюсь с этой проблемой, хотя, честно говоря, я многое узнал о Conduit, так как раньше я в основном использовал готовые примеры за некоторыми исключениями. Основная задача сформулирована так для трубопроводов A , B и C ;...
73 просмотров
schedule 15.07.2023

Конвейер Conduit пропускает некоторые элементы потока
Я попытался реализовать простой подсчет слов с помощью библиотеки Haskell Conduit: wordcountCv2 :: IO () wordcountCv2 = do hashMap <- runConduitRes $ sourceFile "input.txt" .| decodeUtf8C .| omapCE Data.Char.toLower...
98 просмотров
schedule 26.08.2022