問題タブ [haskell-pipes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - IOアクションからの出力をhaskellのプロセスにパイプする方法
プロセスを作成し、haskell プログラムからプロセスの stdin に定期的に (IO アクションから) テキストを書き込みたいと考えています。
以下は GHCi では正しく動作しますが、ビルドして実行すると正しく動作しません。GHCi ではすべてが完璧に機能し、IO アクションからの値が定期的に供給されます。ただし、ビルドして実行すると、プロセスの標準入力に書き込むときに、任意の長い期間一時停止するようです。
CreateProcess
(から) を使用System.Process
してハンドルを作成し、試しましたhPutStrLn
(bufferent をNoBuffering
--に設定しても機能しませんでしたLineBuffering
)。
process-streaming
そのため、パッケージを試していますpipes
が、まったく機能しないようです。
本当の問題はこれです: haskell からプロセスを作成し、定期的に書き込むにはどうすればよいですか?
この動作を示す最小限の例:
どんな助けでも大歓迎です。
haskell - haskell パイプ - バイト文字列パイプで takeWhile 操作を繰り返し実行する方法は?
私がやろうとしているのは、 takeWhile を使用してバイト文字列を文字で分割することです。
これで最初の行が表示されますが、実際に必要なのは、一度に各チャンクを改行文字まで効果的に生成することです。それ、どうやったら出来るの?
haskell - ネットワーク WebSocket へのバイトのストリーミング
Bytestring
ソース ( ) からのストリーミングのシンクをシミュレートするためにファイル ハンドルを使用するコードがありますAWS S3
。シンクとして使用したい場合は、以下のコードを(接続へのハンドルを使用して)Network.Websocket
交換するだけで十分でしょうか?LBS.writeFile
sendBinaryData
私にとって混乱の原因は、ストリームの終了がどのように決定されるかです? ファイルの場合、これはwriteFile
API によって処理されます。どうsendBinaryData
ですか?と同様に終了を処理しますwriteFile
か? それとも、クライアント側のデータ パーサーによって決定されますか?
アップデート
この質問は、上記の例のファイル ハンドルで行うように、Websocket ハンドル (ハンドルが提供されていると仮定します) にデータをストリーミングする方法に関するものであり、実際には 内でハンドルを管理する方法に関するものではありませんresourceT
。データをシンクするアプローチconduit
を取っているようです。mapM_
ですから、それは確かに進むべき道のようです。
終了に関する質問は、私が持っているこの考え方によるものです。Websocket ハンドルの反対側でデータをリッスンする関数がある場合、メッセージの終了を決定することは、ストリーミング コンテキストでは重要なようです。以下のような関数が与えられます:
データを websocket ハンドルにストリーミングする場合S.mapM_
、何らかのend of stream
マーカーを追加f
して、反対側でリッスンしているときに遅延バイト文字列の処理を停止できるようにしますか? そうf
しないと、メッセージがいつ完了したかわかりません。
haskell - `readfile` 関数の出力をコンジットのソースにするにはどうすればよいですか?
次の方法で .txt ファイルを開いています。
.txt ファイルの形式は
そして、次のようになるように、xxs をソースにしたいと思います。
コンジット API は、xxs
最初に文字列操作を行わずにフォームにする方法を提供し[str_1, str_2, ..., str_m]
ますか?
haskell - コンジットを使用してファイルを保存するにはどうすればよいですか?
コンジットのライブラリを使用してファイルを保存するにはどうすればよいですか? コンジットのチュートリアルを調べましたが、何も見つからないようです。これが私のユースケースです:
ここで 2 つの質問があります。
lines
文字列を文字列のリストに変換してから にフィードするために使用するのは理にかなっていsourceList
ますか?文字列が完全に処理され
saveFile
たときにディスクに書き込むことができるようにするには、関数 をどのように実装すればよいですか?xxs
haskell - パイプ: 別のコンテンツに従ってファイルを開く
私はこのコードを持っています:
しかし、それは非常にハックに思えます.最初のファイルの最初の行で読んだものから、パイプ内から2番目のファイルを開くことができるようにしたいと思います. 何か案が?