conduit

    1

    1答えて

    カスタムデータ型でcsv-conduitを使用する方法についてはかなり混乱しています。私は、このいずれかのように株価データの行を取るしたいと思います: Date,Open,High,Low,Close,Volume,Adj Close 2017-02-10,2312.27002,2319.22998,2311.100098,2316.100098,3475020000,2316.100098

    4

    2答えて

    コンジットを使用してテキストを分割するときに問題が発生します。 私が扱っているソースデータは残念ながら、同じファイル内に\r\nと\nの両方のシーケンスを含む行末とは一貫していません。 私はいくつかの例では、末尾\rを私に残した、Data.Conduit.Binaryでlines機能を見つけたが、それシングルバイトで「分割」、(賢明に十分\n、)しています。 現在の実装では、それがないように動作す

    2

    1答えて

    私はちょっと遊んで、conduitを理解しようとしています。 runConduit $ yield "abc" .| mapMC id .| sinkList を実行すると["a", "b", "c"]を与えながら runConduit $ yield "abc" .| mapC id .| sinkList を実行すると、["abc"]を与えます。 なぜモナドバージョンでストリームが分割

    0

    1答えて

    なぜ次の出力は[]ですか? λ: >runConduitPure $ yieldMany [1..2] .| leftover 5 .| sinkList [] 私は単純にそれを返すことが期待:leftover年代ドキュメントあたり[1,2,5]: 結合現在モナド内の次のコンポーネントによって消費される残りの入力の単一片を提供します。

    2

    1答えて

    私はUSB接続からデータを解析して循環バッファに書き込む必要があるプログラムに取り組んでいます。 私が実行し続ける問題は、パーサが入力を消費していないことです。パーサーコンジットをByteStringのストリームに接続するために別の演算子を使用する必要がありますか? 2つの 'フィルタ' dropCとdropWhileCを削除した場合、パーサーは入力の一部を消費しますが、データの最初の数チャンクは

    0

    1答えて

    モナドに状態が含まれるコンジットパイプラインがあります。ある時点では、状態を次のストリームにストリームするコンジットが必要です(これは実際に必要なものを簡略化したものです)。 しかし、私はこれを作るのに問題があります。次の例では、唯一の利回りから、一度状態をストリーム: import Conduit (ConduitM, yield) import Control.Monad.Except (E

    0

    1答えて

    私のコードは以下の通りです。データがランダムな順序で出力されるようですが、NamedRecordはちょうどMapなので意味があります。特定の注文を強制する方法はありますか? 1つのオプションは、タイプConduit (Named a) m (Row Text)のコンジットを作成することですが、これは、何か標準が既に存在するはずの一般的な使用例であるようです。 processor :: Monad

    3

    2答えて

    無限リスト(例えば、take 5、など)で動作する関数f :: [a] -> bがあります。厳密なモナドアクション(たとえばrandomIO)によって生成された値をこの関数に渡したいと思います。 this questionから が、私はrepeatとsequenceトリックアプローチはショー以下の例のように、厳格なモナドのために動作しないことを学んだ:だから import Control.Mona

    2

    1答えて

    Conduitをバイナリファイルを読み込み、正しいヘッダーがあることを確認して、ファイル内の残りのデータを処理する設定に使用したいと考えています。 ヘッダーをチェックして残りのデータを次のコンジットに流すコンジットを作成しようとすると、問題が発生します。私はそれらをある例外処理のためにEither Stringモナドに住まわせる。 import Conduit (ConduitM, mapC, m

    1

    1答えて

    私はDouble行列が行順リストとして続くヘッダーで構成されるバイナリファイルを書き込むConduitを構築しています。コードは次のとおりです。 import Conduit ((.|), ConduitM, mapC, sinkFileBS, yield) import Control.Monad.Trans.Except (ExceptT) import Control.Monad.Tra