Вопросы по теме '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