6
Dlaczego Data.Binary.Get nie jest leniwy, jak to mówi? Czy robię coś złego tutaj?Lazy 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
Ta główna funkcja po prostu zawiesza się zamiast drukować 10 słów.
Dokumentacja jesteś połączony mówi: „Ten dekoder ma wadę, że będzie trzeba czytać wszystkie wejścia, zanim będzie mogła wrócić” –
@MikhailGlushenkov No cóż, jak to przegapiłem. Dzięki :) – swish