問題タブ [lazy-io]

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.

0 投票する
1 に答える
1128 参照

haskell - この「閉じたハンドルでの読み取りの遅延」エラーの原因は何ですか?

最新のソースから GHC をインストールしたところ、「クローズされたハンドルの遅延読み取り」に関するエラー メッセージが表示されます。これは何を意味するのでしょうか?

0 投票する
0 に答える
389 参照

json - JSON をレイジー ByteString としてファイルに書き込み、Aeson エンコード出力から文字列に変換せずに直接書き込みます

現在、JSON コンテンツ ( my_json) をファイル ( my_output_filepath)に書き込むために、次のようなものを使用しています。

これは機能しますが、 ( )ByteStringによって返されるをファイルに書き込む前に に変換する必要があるのか​​、それともパフォーマンスが低下するのか疑問に思っています。encodePrettyString

入力としてa を受け入れるバリアントがあることがわかりました。ただし、使用しようとすると、次のエラーが発生します。writeFileByteString

と相互運用するLazyバリアントを取得する方法はありますか?ByteStringwriteFile

0 投票する
0 に答える
206 参照

json - ファイルへの書き込み時に、Aeson によって出力された JSON ByteString に末尾の改行を効率的に追加します

デフォルトでは、AesonencodeまたはencodePrettyの末尾に改行を追加しませんByteString。つまり、結果のファイルをvimで表示すると、[noeol]インジケーターが表示されます。

ファイルに改行を追加するパフォーマンス/慣用的な方法は何ですか?

SSCCEは次のとおりですMain.hs

添付myproj.cabalファイル付き:

関数 fromfoo.jsonを使用して改行を追加し、最後の行を次のように変更できます。snocByteStringMain.hs

ただし、snocドキュメントではこれを O(n) 操作として説明しています。この改行を一定時間で追加する方法はありますか?

0 投票する
3 に答える
243 参照

haskell - getChar を使用した getContents の再実装

Haskell で遅延 IO を把握するための旅で、次のことを試しました。

「x」を押すまで、標準入力に入力されたすべての文字をエコーするだけです。

したがって、次の行に沿って何かを行うことgetContentsを使用して再実装できるはずだと素朴に考えました。getChar

IO モナドの概念全体を壊してしまう???タイプの関数が必要になるため、それほど単純ではないことがわかりました。IO [Char] -> [Char]

getContents(というよりは)の実装をチェックするとhGetContents、汚い IO のソーセージ ファクトリ全体が明らかになります。myGetContentsダーティなコード、つまりモナドを壊すコードを使わないと実装できない私の仮定は正しい ですか?

0 投票する
1 に答える
217 参照

haskell - print が遅延 IO 値全体を強制しないのはなぜですか?

http-clientチュートリアルを使用して、TLS 接続を使用して応答本文を取得しています。printによって呼び出されていることを確認できるので、次のフラグメントの出力への応答全体を強制withResponseしないのはなぜですか?print

代わりにこれを書く必要があります:

印刷したい本文は怠惰なByteStringです。print値全体を出力する必要があるかどうかはまだわかりません。