如何使用這個package或其他一些軟件包以及如何修復這段代碼來使用懶惰,所以它不會下載整個文件,而只是第一個字節?Haskell:使用Curl進行懶惰下載
import qualified Data.ByteString.Lazy as B
import Network.Curl.Download.Lazy
main = do
Right body <- openLazyURI "http://www.haskell.org/ghc/dist/7.6.3/ghc-7.6.3-x86_64-unknown-linux.tar.bz2"
return $ B.take 32 body
您無法控制下載量,只是下載很慢。它將以區塊形式下載,具體針對實現以及可能的網絡連接,但如果您使用的是懶惰變體,則應該返回一個懶惰的字節串,根據文檔。此代碼是否按預期工作? – bheklilr
@bheklilr它像我說的那樣下載整個文件,然後它返回懶惰的字節串。我會很樂意控制至少大塊下載。 – swish
仔細看看文檔,看起來這個庫中嚴格函數和惰性函數之間的區別是它們的返回類型,而不是它們的行爲。 'openLazyURI'函數返回一個懶惰的'ByteString',而'openURI'返回一個嚴格的字節串。如果你使用懶惰的'ByteString'或者嚴格的''ByteString'',這很可能會提供一個接口。 – bheklilr