Я хочу взять первые пять байтов из первого файла в zip-архиве. Для распаковки я использую zip-архив:
import qualified Data.ByteString.Lazy as L
import Data.Maybe
import System.Environment (getArgs)
import Codec.Archive.Zip
main = do
f:_ <- getArgs
print . L.take 5 . fromEntry . head . zEntries . toArchive =<< L.readFile f
Этот код работает с небольшими архивами, но у меня переполняется куча большими. Например:
./zip-arch test.zip +RTS -p -hy -M100M