Haskellの駄目な使い方

HaskellでLha

最終更新:

匿名ユーザー

- view
管理者のみ編集可
Lha展開関数が動いたんで
喜び勇んで公開することにしました。


とりあえず問題点
  1. 遅い(律儀に1ビットづつハフマン木を辿ってる)
  2. スライド辞書がスライドしてない
  3. エラー処理がない。

2番目は64Kとかの配列を使い捨てしてるんだけどListで十分だったかも。でかい辞書あっても使うのはほとんどが最新に近いところだけっぽいし。

3番目は実用上致命的。
アプリに組み込んで変なファイル食わせたら
アプリごとerrorで落ちる。

Errorモナド使えばよさげなのはわかるんだけど
可変ビットの切り出しでもうStateモナドつかってるんだよね。

二つ以上モナドを同時に使う方法が全然わからないよ。
このへん使うんだろうけど>モナド変換子

以下つづく。

参考サイト
LHA for UNIXとLhaのファイルヘッダの解説。
http://www2m.biglobe.ne.jp/~dolphin/

LHAで使ってるLZ77(スライド辞書)とハフマン木の説明とか
http://www.01-tec.com/document/basic_compression.html

このページで公開するソフトウェアのバイナリやソースコードのライセンスはすべてクリエイティブコモンズのアトリビューション(帰属)ライセンスとさせていただきます。
添付ファイル
目安箱バナー