为什么Data.Binary.Get不像它说的那样懒惰?还是我在这里做错了什么?
import Data.ByteString.Lazy (pack)
import Data.Binary.Get (runGet, isEmpty, getWord8)
getWords = do
empty <- isEmpty
if empty
then return []
else do
w <- getWord8
ws <- getWords
return $ w:ws
main = print $ take 10 $ runGet getWords $ pack $ repeat 1
这个主要功能只是挂起而不是打印 10 个单词。