2

だから私はJavaクラスファイルをバイトコードとして読み込むことができるプログラムを書こうとしています。このために、Data.Binary と Data.ByteStream を使用しています。私が抱えている問題は、Haskell にかなり慣れていないため、これらのツールを実際に使用するのに問題があることです。

module Main where
import Data.Binary.Get
import Data.Word
import qualified Data.ByteString.Lazy as S

getBinary :: Get Word8
getBinary = do
a <- getWord8
return (a)

main :: IO ()
main = do
contents <- S.getContents
print (getBinary contents)

これは私がこれまでに思いついたものであり、実際には正しい軌道に乗っていないのではないかと心配しています. この質問は非常に一般的であることは承知していますが、読書で何をすべきかについての助けをいただければ幸いです。

4

2 に答える 2

3

Haskell で既存の Java 分析/解析ツールのいずれかを使用できますか? 例えば

http://hackage.haskell.org/package/jarfind

Data.Binary の使い方を学ぶ必要がある場合は、Real World Haskell をお勧めします: http://book.realworldhaskell.org/read/code-case-study-parsing-a-binary-data-format.html

于 2010-04-16T03:40:36.323 に答える
-7

これは実際には、Haskell を使用する最悪のアプリケーションの 1 つです。なんで?

大量の I/O は、モナドを扱う必要があることを意味します。以前ではなく、言語の他のユニークな機能に慣れてきたら、取り組むことをお勧めします。それらは、数学の大学院の学位を持っている人にとっても複雑なトピックです (そう聞いています)。それだけでなく、ほとんどが I/O であるコードを書き始めると、Haskell で多くのアルゴリズムを命令的に実行できるし、実行する必要があるという印象を受けるかもしれません。これはそうではありません。おそらくあなたにとって最も重要なことは、この言語がほとんど悪名高いほど短くて簡単なコードの塊であるため、この言語に惹かれたことだと思います。これは、I/O と手動メモリ管理 (実際には I/O です) 以外の言語のほぼすべてに当てはまります。

このタスクに完全に適した C でプログラムを作成し、最初の Haskell プログラムを他の言語では難しいと思われるものにすることをお勧めします。私は特に機械学習アルゴリズムのファンですが、他の言語では難しいと思われるデータ構造やアルゴリズムが何であれ、Haskell 用に作り直してみてください。

もっと少ないコードを書くことに慣れてください。私の最初の主要な Haskell アプリは、強化学習と遺伝的アルゴリズムの両方をマルチスレッドで使用するニューラル ネットワーク トレーニング ライブラリでした。350 行のコード (大量のコメントを含む)。私の意見では、これが Haskell の真の力です。

于 2010-04-16T01:22:55.453 に答える