Вопросы по теме 'conduit'
Демон веб-парсинга Haskell http-проводник аварийно завершает работу с ошибкой нехватки памяти
Я написал на Haskell демона, который считывает информацию с веб-страницы каждые 5 минут.
Первоначально демон работал нормально около 50 минут, но затем неожиданно умер с out of memory (requested 1048576 bytes) . Каждый раз, когда я запускал его,...
563 просмотров
schedule
16.09.2021
InternalIOException getAddrInfo: не существует (ошибка 10093) в Windows 8
Почему такой простой код не работает?
import Network.HTTP.Conduit
import qualified Data.ByteString.Lazy as L
main :: IO ()
main = simpleHttp "http://www.dir.bg/" >>= L.putStr
Это приводит к следующей ошибке:
TestConduit.exe:...
1012 просмотров
schedule
22.10.2021
Haskell Conduit Aeson: анализ больших файлов JSON и фильтрация соответствующих ключей/значений
Я написал приложение на Haskell, которое делает следующее:
Рекурсивно перечислить каталог,
Проанализируйте файлы JSON из списка каталогов,
Найдите совпадающие пары ключ-значение и
Возвращает имена файлов, в которых были найдены совпадения....
426 просмотров
schedule
21.03.2022
Как реализовать функцию типа takeWhile с помощью комбинаторов Conduit?
Я пытаюсь реализовать функцию, которая сочетает в себе идеи groupBy и takeWhile , а также использует последнюю внутренне. В частности, он сгруппирует все элементы, которые последовательно возвращают True в текущем предикате, в виде списка, затем...
90 просмотров
schedule
09.05.2022
Conduit, замена спискам?
Я думал о списках в Haskell, и я думал, что в других языках списки не используются для всего. Конечно, вы можете захотеть сохранить список, если вам потребуются значения позже, но если это всего лишь один случай, скажем, итерация от [1..n] , зачем...
425 просмотров
schedule
17.05.2022
Есть ли способ, чтобы канал брал данные из нескольких источников, не блокируя ни один из них?
Я пишу сервер, и одно из требований заключается в том, что он должен иметь возможность передавать данные клиентам без прямого запроса данных клиентом. Я использую каналы, но мне кажется, что это выходит за рамки возможностей каналов. Проблема, с...
318 просмотров
schedule
08.06.2022
Способы повышения производительности линейных кабелепроводов
Я использую haskell для построчной обработки данных, т.е. задач, где можно применить sed , awk и подобные инструменты. В качестве простого примера давайте добавим 000 к каждой строке из стандартного ввода.
У меня есть три альтернативных...
359 просмотров
schedule
08.06.2022
Какая польза от остатков трубопровода?
Я пытаюсь понять разницу между каналом и трубами . В отличие от каналов , кондуит имеет понятие остатков. Чем полезны остатки? Я хотел бы увидеть несколько примеров, когда остатки необходимы.
А поскольку в трубах нет концепции остатков,...
1133 просмотров
schedule
13.06.2022
Получение данных из rawQuery с помощью Conduits
Я признаю, что не очень хорошо понимаю Conduits, учитывая мои ограниченные знания Haskell. Так что цените, если кто-нибудь может подсказать мне, как выполнить эту задачу: я хотел бы получить результат действия rawQuery и сохранить его в переменной,...
331 просмотров
schedule
13.07.2022
Как сделать канал, подобный takeWhile, но принимающий максимум определенное количество байтов?
Я пытаюсь создать канал, нечто среднее между takeWhile и isolate . То есть он будет потреблять из ввода и уступать выходу до тех пор, пока либо предикат больше не будет выполняться, либо он не достигнет предела байтов. Я знаю, что подпись...
294 просмотров
schedule
22.07.2022
Conduit — объединение нескольких источников/производителей в один
Я читаю из файла с помощью sourceFile , но мне также нужно ввести случайность в операцию обработки. Я считаю, что лучший подход — это иметь продюсера типа
Producer m (StdGen, ByteString)
где StdGen используется для генерации случайного...
665 просмотров
schedule
26.07.2022
Какова реальная польза от параметра типа исходящего канала канала?
Я пытаюсь понять различия между различными реализациями концепции каналов. Одно из различий между каналом и трубами заключается в том, как они соединяют трубы вместе. Канал имеет
(>+>) :: Monad m
=> Pipe l a b r0 m r1 ->...
350 просмотров
schedule
25.08.2022
Одношаговый канал
Я хочу сделать что-то вроде ArrowChoice, но с каналами . Я хочу дождаться значения «Любой», а затем передать значения «Лево» в один канал и значения «Право» в другой, а затем объединить результаты обратно в поток «Либо».
Предположительно, это...
389 просмотров
schedule
05.09.2022
проводник: возможен источник только для чтения?
Предположим, что у меня есть источник keypads :: Producer IO Keypad , который создает поток конфиденциальных данных, таких как одноразовые клавиатуры.
Теперь, если моя библиотека предоставляет keypads , конечный пользователь может подключить...
60 просмотров
schedule
14.09.2022
Обмотка трубопровода в ExceptT
Как правильно обернуть трубопровод ExceptT ? Подход должен останавливать обработку при возникновении ошибки и извлекать сообщение об ошибке. Вот игрушечный код без обработки ошибок — он просто молча останавливается:
import Data.Conduit as C...
104 просмотров
schedule
22.09.2022
Что делать с освобождением от unwrapResumable?
Я написал простой прокси-сервер Wai-to-uwsgi , но при этом мне пришлось использовать unwrapResumable . Это дает развернутый Pipe и функцию «освобождения», которую в конечном итоге необходимо вызвать. Тип функции выпуска — ResourceT IO () , и я...
108 просмотров
schedule
06.11.2022
Один канал обработки, 2 источника ввода-вывода одного типа
В моем приложении GHC Haskell , использующем stm, network-conduit и conduit, у меня есть цепь для каждого сокета, которая автоматически разветвляется с использованием runTCPServer . Нити могут связываться с другими ветвями с помощью...
2314 просмотров
schedule
06.11.2022
Отсутствующие экземпляры для ResourceT в канале
Я получаю странную ошибку при попытке использовать ResourceT из канала 1.0.9.1. Мне не хватает экземпляров из документации. Например
import Control.Monad
import Control.Monad.Trans
import Control.Monad.IO.Class
import Data.Conduit
test =...
260 просмотров
schedule
25.01.2023
Conduit: извлечение последовательных чисел
Я играю с библиотекой каналов и написал пример кода для извлечения двух чисел (2 и 3), когда они появляются в последовательности. Ниже приведен мой код:
import Data.Conduit
import qualified Data.Conduit.List as CL
source = CL.sourceList...
140 просмотров
schedule
02.04.2023
Работа с бесконечными списками со строгими монадами
У меня есть функция f :: [a] -> b , которая работает с бесконечными списками (например, take 5 , takeWhile (< 100) . scanl (+) 0 и т. д.). Я хочу передать этой функции значения, сгенерированные строгими монадическими действиями (например,...
303 просмотров
schedule
07.05.2023