Вопросы по теме 'haskell-pipes'
могу ли я сделать StateP из Control.Proxy экземпляром MonadState?
Я изменяю некоторый код, который раньше выполнялся внутри монады StateT , чтобы он выполнялся внутри монады StateP из Control.Proxy . Однако для части моего кода (например, для оператора %= из Control.Lens ) требуется экземпляр MonadState ....
167 просмотров
schedule
21.03.2023
Экземпляр MonadTransControl для ProxyFast / ProxyCorrect
Используя каналы, я пытаюсь написать экземпляр MonadTransControl для ProxyFast или ProxyCorrect . Вот что у меня есть:
instance MonadTransControl (ProxyFast a' a b' b) where
data StT (ProxyFast a' a b' b) a = StProxy { unStProxy ::...
187 просмотров
schedule
14.12.2023
Сворачивание подмножества потока с использованием каналов 4.0
Я пытаюсь понять каналы 4.0 и хочу преобразовать код канала. Предположим, у меня есть поток Int s, и я хотел бы пропустить первые пять, а затем получить сумму следующих 5. Используя простые списки, это будет:
sum . take 5 . drop 5
В...
578 просмотров
schedule
21.04.2022
Подключение Producer и Pipe для извлечения результата
Имея производителя типа Producer ByteString IO () и канал типа Pipe ByteString a IO () , как мне составить эффект, который при запуске приведет к IO a ?
Вот моя лучшая попытка:
{-# LANGUAGE ScopedTypeVariables #-}
import Pipes
import...
262 просмотров
schedule
20.10.2022
Haskell: разделение каналов (трансляция) без использования спавна
Этот вопрос немного кодовый и много нового.
Я использую потрясающую библиотеку pipes в Haskell, и я хотел бы разделить канал для отправки одних и тех же данных по нескольким каналам (сделать широковещательную рассылку). В Pipes.Concurrent...
774 просмотров
schedule
08.11.2023
Какие трубы / трубопровод пытаются решить
Я видел, как люди рекомендовали библиотеку pipe/conduit для различных задач, связанных с ленивым вводом-выводом. Какую проблему решают эти библиотеки?
Кроме того, когда я пытаюсь использовать некоторые библиотеки, связанные с хакерством, весьма...
6281 просмотров
schedule
08.11.2023
Потоковый разбор JSON в Haskell с помощью Pipes.Aeson
Библиотека Pipes.Aeson предоставляет следующую функцию:
decode :: (Monad m, ToJSON a) => Parser ByteString m (Either DecodingError a)
Если я использую evalStateT с этим синтаксическим анализатором и дескриптором файла в качестве аргумента,...
936 просмотров
schedule
03.11.2023
Преобразование обычного кода синтаксического анализатора attoparsec в код на основе канала/канала
Я написал следующий код синтаксического анализа, используя attoparsec :
data Test = Test {
a :: Int,
b :: Int
} deriving (Show)
testParser :: Parser Test
testParser = do
a <- decimal
tab
b <- decimal
return $ Test a b...
585 просмотров
schedule
18.01.2023
Вопросы параллелизма между конвейерным и неконвейерным кодом
Я нахожусь в процессе создания библиотеки C для некоторой кодировки в интерфейсе каналов, но я натолкнулся на некоторые дизайнерские решения, которые необходимо принять.
После того, как библиотека C настроена, мы сохраняем контекст кодировщика....
319 просмотров
schedule
02.02.2023
Труба, которая поддерживает состояние
Я пытаюсь вычислить скользящие хеш-значения (buzzhash) для большого файла, используя pipes .
В настоящее время у меня есть это. Но не знаю, как написать канал, который поддерживает состояние.
import qualified Data.ByteString.Lazy as L
import...
266 просмотров
schedule
06.11.2023
Haskell Pipes: как сортировать вывод производителя?
У меня есть следующий фрагмент кода:
import Control.Monad (unless)
import Pipes
import qualified Pipes.Prelude as P
import System.FilePath.Posix ((</>))
import System.Posix.Directory (DirStream, openDirStream, readDirStream)
produceFiles ::...
222 просмотров
schedule
12.01.2023
Декодирование потока JSON, где одни значения нужны раньше других
Допустим, у нас есть такой объект JSON (со строкой байтов, закодированной в base64):
TaggedImage = TaggedImage { id :: Text, image :: ByteString }
Теперь мы хотим получить image из источника и сохранить его в месте, используя информацию в...
172 просмотров
schedule
02.11.2023
Понимание использования памяти этой программой Haskell
Я должен предварить это, сказав, что я очень новичок в Haskell и библиотеке каналов, и я хотел бы понять, что вызывает высокое использование памяти этой программой в функции test .
В частности, в сгибе, который создает значение r1 в test , я...
152 просмотров
schedule
17.07.2023
Подъем трубы для работы с кортежами
Мне нужна функция с типом Pipe a b m r -> Pipe (a, c) (b, c) m r .
Но сколько бы я ни играл с for , ~> или >~ ; Я не могу правильно сопоставить типы.
Вы можете помочь мне?
86 просмотров
schedule
24.10.2022
Как сделать Pipe параллельной с библиотекой Haskell Pipe?
У меня есть код Haskell, использующий Pipes:
module Main(main) where
import Pipes
a :: Producer Int IO ()
a = each [1..10]
b :: Pipe Int Int IO ()
b = do
x <- await
yield (x*2)
b
c :: Consumer Int IO ()
c = do
x <- await
lift $...
404 просмотров
schedule
02.01.2023
Передача состояния от производителя к синтаксическому анализатору
Я использую каналы, attoparsec и pipe-attoparsec, чтобы написать конвертер файла дампа базы данных. Общий формат файла состоит в том, чтобы иметь команду создания таблицы, за которой следует необязательная команда вставки. В дополнение к...
103 просмотров
schedule
02.11.2022
Запись в файл в потоковом режиме и остановка при достижении заданного размера файла памяти
Допустим, я хочу сохранить поток MyItem в файл (например, в JSON). Я хотел бы остановиться, когда файл достигает определенного предела размера в байтах. Я хотел бы сделать это в Haskell... потоковая передача для меня не проблема, а как получить...
79 просмотров
schedule
02.08.2022
Трубы `работают` с состоянием
У меня есть продюсер:
p :: Producer Message IO r .
Я могу обрабатывать все сообщения, используя:
runEffect $ for p processMessage
куда
processMessage :: Message -> Effect IO () .
Как я могу реализовать обработку с сохранением...
51 просмотров
schedule
07.01.2023