問題タブ [bytestring]

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 に答える
308 参照

haskell - ByteString (または ForeignPtr コンポーネントを持つ任意のオブジェクト) を生成する関数の純度

aByteStringは次のコンストラクタであるためForeignPtr:

を返す関数がある場合ByteString、定数などの入力が与えられるとWord8、関数は非決定論的な ForeignPtr 値を持つ ByteString を返します-その値が何であるかは、メモリマネージャーによって決定されます。

では、ByteString を返す関数は純粋ではないということですか? ByteString および Vector ライブラリを使用している場合、明らかにそうではないようです。確かに、もしそうなら、広く議論されたでしょう (そしてうまくいけば、Google 検索のトップに表示されます)。その純粋さはどのように強制されますか。

この質問をする理由は、コンストラクターに ForeignPtr メンバーがある場合、GHC コンパイラーの観点から、ByteString および Vector オブジェクトの使用に関連する微妙なポイントは何かに興味があるからです。

0 投票する
2 に答える
8550 参照

haskell - ByteStringをIntに変換する最良の方法は何ですか?

ByteStringを読み取ろうとすると、常に次のエラーが発生します。
Prelude.read: no parse

ブラウザでのレンダリング時にこのエラーが発生する原因となるコードのサンプルを次に示します。

または、おそらくもっと簡単に:

何らかの理由でshow bs、結果の文字列の後に引用符が含まれます。したがって、エラーを回避するには、引用符を削除してから削除する必要がありますread。インターネットからコピーした次の関数を使用してこれを行います。

その後simple bs = read (sq.show bs) :: Int、期待どおりに動作します。

  1. なぜそうなのですか?
  2. ByteStringをIntに変換する最良の方法は何ですか?
0 投票する
1 に答える
2842 参照

haskell - Data.Text と Data.ByteString.Char8

データ型Data.Textを使用することの長所と短所を説明できる人はいますか? Data.ByteString.Char8ASCII のみのテキストを操作すると、これらの長所と短所が変わりますか? 彼らの怠惰な変種もストーリーを変えますか?

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

string - Haskell Word8 を作成するには?

a を区切り文字として使用するようにByteString分割する単純な関数を書きたいと思います。私の試み:[ByteString]'\n'

'\n'Charではなく であるためWord8、これはエラーをスローしますData.ByteString.splitWith

Word8この単純なキャラクターを、ByteString遊べるに変えるにはどうすればよいですか?

0 投票する
2 に答える
537 参照

parsing - Data.ByteString を使用して 7GB のファイルを解析するには?

私はファイルを解析する必要があり、実際には最初にそれを読む必要があります。これが私のプログラムです:

しかし、コンパイル後

7G バイトのファイルで呼び出すと、次のエラーが発生します。

返信ありがとうございます。

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

haskell - ByteString を 16 進表現に効率的に変換する

SHA512 ハッシュの 16 進数表現を提供できるようにする必要がありました。よく調べていなかっただけかもしれませんが、Hackage でそれを行うための関数を見つけることができました。そこで、 を使って実装を書きましたunfoldrN。私の目的には間違いなく十分に高速ですが、より高速なアプローチを誰かが知っているかどうか疑問に思っています。

実装を Gist として Github に掲載しました: https://gist.github.com/2356925Numeric.showHexこのファイルには、QuickCheck テストと基準ベンチマークに基づく簡単な実装も含まれています。シンプルバージョンとバージョンの現在の結果は次のunfoldrNとおりです。

誰かがそれを改善することに挑戦したいですか?

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

haskell - 怠惰なByteStringsでbase64-bytestringを使用する

これが私がHaskellでやろうとしていることです:

  • ByteString形式でメッセージを受け取ります(怠惰であるか厳密であるかは実際には関係ありません)
  • RSA公開鍵でメッセージを暗号化する
  • base64は暗号化されたメッセージをエンコードします

私が使用しているRSAライブラリは、レイジーByteStringsを内部で処理しますただし、Base64ライブラリは厳密なByteStringのみを使用します。私のアプリケーションは、怠惰なByteStringsを使用してメッセージをネットワークソケットに送信します。

したがって、怠惰なByteStringと厳密なByteStringの間で変換する必要があるようです。これが私がすることです:

残念ながら、これが失敗することがあります。この方法で暗号化されたメッセージを復号化すると、実際のメッセージの後にガベージが続くことがあります。問題がどこにあるのか正確にはわかりません。レイジーから厳密なByteStringsへの変換なのか、それともbase64エンコーディングステップなのか。それとも両方ですか?

Lazy ByteStringsは、厳密なByteStringチャンクの単なるリストです。メッセージを変換して暗黙的にメッセージの長さを変更しますか?

教えてください。

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

haskell - ByteString への切り替え

編集: Yuras と Dave4420 のアドバイスに従いました (ありがとう)。まだいくつかのエラーがあります。質問を更新しました。最後に meiersi のバージョンを使用します (ありがとうございます) が、まだエラーを見つけたいです...

次のような簡単なスクリプトがあります。

コンパイルして動作します。それから私はsに切り替えたいと思いましたByteString。これが私の試みです:

うまくいきません。デバッグできませんでした。GHCが教えてくれることは次のとおりです。

ヒントをいただければ幸いです。

0 投票する
5 に答える
14105 参照

haskell - HaskellCharをWord8に変換する方法

ByteString私はそのような言葉に分割したい:

Word8しかし、GHCは文字リテラルをそれ自体に変換できないように見えるので、次のようになりました。

Hoogleは、型シグネチャがの何も検出せず、Char -> Word8無効Word.Word8 ' 'な型コンストラクターです。それを修正する方法について何かアイデアはありますか?

0 投票する
2 に答える
143 参照

sockets - ソケットハンドルから構築されたレイジーByteStringは、消費してレイジーにGCすることはできません

ネットワークファイル転送アプリケーションを書いています。中間としてLazyByteStringを使用する

ローカルファイルからBSLを構築する場合は、BSLをソケットのハンドルに配置します。

これは正常に機能します。メモリ使用量は一定です。ただし、Socketからデータを受信する場合は、ローカルファイルに書き込みます。

メモリ使用量が増え続けていることがわかります。BSLはサイズバイトのメモリを使用します。さらに悪いことに、私の物理メモリサイズを超える大きなサイズの場合、OSはすぐにスワッピングを開始します。

ByteStringsのセグメントを再帰的に受信する必要があります。それは大丈夫です。

なぜBSLはそのように振る舞うのですか?