メモ

conduitのやりかたで、Gzipの展開、圧縮のコードを書いてるのだけど、ByteStringとBitに関係するパイプとして、以下のものを使う。

* onDemand

* bits

* bitsToByteString

onDemandは要求された長さのビット列またはバイト列をわたすパイプで、長さはビット数、バイト数で指定することができる。バイト数で指定する場合には、足りなかったときに「あるだけ渡す」か「Nothingにする」かで2通りの方法がある。また\0までを渡すという渡しかたと、あと取り出しすぎた分をもどすことが可能。

bitsはビット列またはバイト列を渡されると、1ビットずつ次のパイプに渡していく。

上記の2者は展開のときに使われる。

bitsToByteStringは圧縮のときに使われる。ビットのリストを渡されると、8ビットそろった段階でバイト列を渡す。

Reply to this note

Please Login to reply.

Discussion

No replies yet.