Haskellを介してCRCを調べ続けると、CRC32計算用のテーブルを生成するために次のコードを記述しました。
crc32Table = listArray (0, 255) $ map (tbl 0xEDB88320) [0..255]
tbl polynomial byte = (iterate f byte) !! 8
where f r = xor (shift r (-1)) ((r .&. 1) * polynomial)
これにより、テーブルが正しく生成されます。このテーブルに頻繁にアクセスしたいのですが、1)結果をコードにハードコードしたくない、2)参照するたびにこのテーブルを再計算したくない。
Haskellでこの配列をメモ化するにはどうすればよいですか?Haskellのメモ化ページは私に手がかりを与えてくれませんでした。