我有类似的代码工作,但使用getWord8和getWord32le为什么getFloatle给我错误?为什么变量不在范围内?
import qualified Data.ByteString.Lazy as BS
import Data.Word
import Data.Bits
import Data.Binary.Get
readfloat :: BS.ByteString -> Int -> Float
readfloat contents startpos = runGet getFloatle (BS.drop (fromIntegral startpos) contents)
main :: IO()
main = do
let myfile = "DATA.BIN"
contents <- BS.readFile myfile
let stuff = readfloat contents 1042346125
print stuff
得到以下错误:
test2.hs:7:38: error:
Variable not in scope: getFloatle :: Get Float
你能显示你的类似代码吗? – Sibi
你有哪个版本的二进制包? 'getFloatle'和朋友在[最新](https://hackage.haskell.org/package/binary-0.8.4.1/docs/Data-Binary-Get.html),但不是随机挑选的[0.8。 1.0](https://hackage.haskell.org/package/binary-0.8.1.0/docs/Data-Binary-Get.html)。 – gspr
我使用https://haskell.org/platform/download/8.0.1/haskell-platform-8.0.1-unknown-posix--full-x86_64.tar.gz来安装,它应该是最新的。 Cabal显示了二进制包的0.8.3.0。 – Vlam