は、私は、あなたの助けを請う次のプログラムのスピードアップのメイン機能でHashMapを使用する方法ハスケル:(!):
がmain = do
jobsToProcess <- fmap read getLine
forM_ [1..jobsToProcess] $ \_ -> do
[r, k] <- fmap (map read . words) getLine :: IO [Int]
putStrLn $ doSomeReallyLongWorkingJob r k
を行うには、同一の仕事の多くがあるかもしれませんが、しかし、そうではありません私には入力を変更するので、すでに処理されたジョブのバックアップにはData.HashMap
を使用しようとしました。私はすでにdoSomeReallyLongWorkingJob
関数のアルゴリズムを最適化しましたが、今やC言語ほど高速です。
残念ながら、私は多大なエラーを発生させることなく単純なキャッシュを実装することはできません。私はタイプHashMap (Int, Int) Int
のシンプルなキャッシュが必要ですが、たいていは大括弧が少なすぎるか少なすぎます。そして、私がキャッシュを定義することができれば、私は多くのエラーのキャッシュにデータを入れたり、キャッシュからデータを取得したりしています。
私はすでに数時間グーグルでいたが、私は立ち往生しているようだ。 BTW:longrunner
の結果はInt
です。
落ち着いてください...まず問題を説明してください。どうやらあなたはジョブを処理したいと思っていますが、何らかの一意性フィルタが必要です。右? –
いいえ、すべての入力に対して回答を書く必要があるため、一意性フィルタは必要ありません。 10ジョブ、10回答。同じ順序で。私は単にキャッシュが必要です。 – Hennes
ああ話すのはどうですか? –