![](/img/trans.png)
[英]Parsing an iterable without listifying each chunk
假設我想實現 Python 可迭代對象的拆分,而不列出每個塊,類似於itertools.groupby ,其塊是惰性的。 但我想在比鍵相等更復雜的條件下進行。 所以更像是一個解析器。 例如,假設我想在一個可迭代的整數中使用奇數作為分隔符。 比如more_itertools.split_at(lamb ...
[英]Parsing an iterable without listifying each chunk
假設我想實現 Python 可迭代對象的拆分,而不列出每個塊,類似於itertools.groupby ,其塊是惰性的。 但我想在比鍵相等更復雜的條件下進行。 所以更像是一個解析器。 例如,假設我想在一個可迭代的整數中使用奇數作為分隔符。 比如more_itertools.split_at(lamb ...
[英]"Yield from" in Haskell Pipes
在Haskell Pipes中,假設我正在編寫f:: Producer am ()並且我在關於m的 do 塊內(編輯:這沒有意義;我想要一個生產者 do 塊)。 在這個 do 塊中,我想在返回到我的 do 塊之前從g:: Producer am ()產生。 我如何做到這一點? 在我的特殊情況下, ...
[英]Stateful generators with Haskell pipes
假設我想要 model,使用 Haskell 管道,Python Generator[int, None, None]保留一些內部 state。我應該使用Producer int (State s) ()還是StateT s (Producer int m) () ,其中m是我最終希望從消費者那里得 ...
[英]Pipes `run` with State
我有一個制片人: p:: Producer Message IO r 。 我可以使用以下方法處理所有消息: runEffect $ for p processMessage 在哪里 processMessage:: Message -> Effect IO () 。 如何使用以下方法實現有 ...
[英]pipes `take` with default value
我有一個生產者p類型為Producer Message IO (Producer SB.ByteString IO ()) 。 現在我需要選擇性地跳過一些消息並選擇性地處理一定數量的消息: 我無法使用來自 Pipes.Prelude 的take ,因為它返回()而我需要返回一個空的生產者。 我快速 ...
[英]how to insert an IO operation into a Pipe
我有一個 Haskell function ,它給出了一個目錄,從中遞歸地獲取所有文件並將文件名寫入文件。 這是一個簡單的例子。 在下一步中,我必須通過使用文件內容的操作替換從文件到文本的映射( transf操作); 這顯然是 IO monad 中的一個操作。 我對Pipe的了解非常有限; 我嘗試 ...
[英]Writing into a file in a streaming way and stop when we reach a given memory file size
假設我想將MyItem的 stream 保存到文件中(例如在 JSON 中)。 當文件達到一定的字節大小限制時,我想停止。 我想在 Haskell 中執行此操作...流式傳輸對我來說不是問題,更重要的是如何在將每個項目放入此文件后獲取文件大小信息... ...
[英]Using request and response in with the Pipes library for bidirectional communication
這個問題是關於 Haskell Pipes庫的 背景: 在上一個問題中,我詢問了如何使用管道形成循環, 我得到的答案是“不要那樣做。改用request和response 。” 雖然有一個優秀且編寫清晰的教程,用簡單的英語涵蓋了Producers 、 Consumers 、 Pipes和Effect ...
[英]Composing Pipes into a loop or cycle in haskell
這個問題是關於 Haskell 庫Pipes 的。 此問題與 2019 Advent of Code Day 11 (可能劇透警告)有關 我有兩個Pipe Int Int mr brain和robot ,它們也需要在連續循環中相互傳遞信息。 這是輸出brain需要去的輸入robot的輸出和robo ...
[英]what is the way to get system time in Haskell?
我想在我的代碼中使用系統時間來記錄從用戶界面捕獲數據的時間。 如何使用 Haskell 獲取系統時間。 ...
[英]Pipes (Haskell lib) - piping pipes with different state monad
我的目標是使最后產生的值等於 80 (40 + 40)(參見下面的代碼)...import Pipes import Pipes.Prelude import Pipes.Lift import Control.Monad.State.Strict data Input = A Integer | ...
[英]How to use a ZMQ subscriber in Haskell with pipes
我可以讓ZMQ訂戶在Haskell中工作,但希望能獲得有關如何在Pipes中使用該數據的指導。 我寫生產者的嘗試在“堆棧生成”中失敗,並出現以下錯誤: 無法將類型“代理X()c'0 c0(ZMQ z)”與“ ZMQ z”進行匹配 預期類型:ZMQ z() 實際類型:代 ...
[英]GroupBy of stream by agreggateId (Haskell / concurrency streaming)
上下文 :我正在CQRS中實現一個App,並且正在嘗試優化命令的處理(基本上是通過匯總ID的1個流)... 問題 :我想擁有第一個流來接收所有命令,並通過它們的集合ID在不同線程上分派這些命令: 1)集合中的命令以串行方式處理 2)聚合獨立(並行)處理其命令。 解決方案 : ...
[英]How would I pipe with a timeout that resets with each incoming?
withTimeout函數假設管道ConsoleEvent ,如果沒有收到任何內容,則每隔s :: Int秒發送一次CeTimeout 。 相反,它無法在適當的時間發送CeTimeout事件。 如果大於s秒且原始事件丟失,則會將一個CeTimeout事件替換為其他事件。 此外,而不是一個C ...
[英]Reading strings from stdin or argument in Haskell CLI
我正在嘗試構建一個Haskell CLI,它可以從stdin或類似這樣的參數中讀取字符串: 我將如何完成? ...
[英]How do I know where in my Haskell Program an Exception can be Thrown?
我正在開發一個1-10k線路的個人Haskell項目,我正在使用Pipes.Concurrent生成的工人內部使用各種IO庫,例如Network.HTTP.Conduit。 我剛剛意識到其中一些IO庫在邊緣情況下拋出異常。 有沒有辦法讓GHC給我關於未捕獲異常的編譯時警告? 找出庫 ...
[英]Handling sum encoding in Streaming libraries
這個問題背后的動機是這種情況 - 我們有一個由Sum編碼表示的值流。 讓我們假設Either ByteString ByteString ,其中我們分別表示錯誤和良好狀態的字節流。 現在,我們有另一個可以壓縮ByteString流的函數。 是否可以在Either ByteString By ...
[英]pipes and fork with Control.Concurrent.MonadIO
在下面的代碼中,我試圖將2個Producer s組合成1.所有類型都相同。 它們將由兩個輸入Producer的每一個組合在一個單獨的線程中運行,並由Consumer ,將Consumer放入一個unagi chan(我使用unagi chan來提高性能)。 返回一個從chan讀取的生產者。 ...
[英]what is the relationship between Haskell's FreeT and Coroutine type
在Monad.Reader Issue 19中的“Coroutine Pipelines”文章中,作者定義了一個通用的Coroutine類型: 我注意到這種類型與free軟件包中的FreeT類型非常相似: 似乎FreeT和Coroutine是同構的。 以下是從一個映射到另一個的 ...
[英]Optimizing Memory in Haskell, pipes, attoparsec, and containers
我正在嘗試進一步優化我的管道 - attoparsec解析器和存儲,但無法獲得更低的內存使用率。 給出account-parser.hs 用GHC 8.0.2編譯( stack ghc -- -O2 -rtsopts -threaded -Wall account-parser.h ...