Как я мог написать функцию с определением что-то вроде ...
readBinaryFile :: Filename -> IO Data.ByteString
У меня отключены функциональные части Хаскелла, но система типов и монады все еще заставляют мою голову болеть. Может кто-нибудь написать и объяснить, как эта функция работает для меня?
import Data.ByteString.Lazy
readFile fp
проще простого. Избавьтесь от ленивых, если не хотите, чтобы строка была ленивой.
import Data.ByteString.Lazy as BS
import Data.Word
import Data.Bits
fileToWordList :: String -> IO [Word8]
fileToWordList fp = do
contents <- BS.readFile fp
return $ unpack contents