[英]Haskell: how to add a patch?
我在“了解Haskell的學習”的IO一章中,注意到我為我顯示的字節串與書中的屏幕截圖之間存在差異(請參見下面的示例)。 除非人們有其他建議,否則似乎解決方案(至少根據此帖子 )是安裝此補丁 。
這可能是一個非常基本的問題,但是...我該如何安裝這種類型的補丁?
當然也可以接受其他建議,例如:如何讓ghci顯示正確的ByteString格式。
我的設置/系統:
書中如何顯示ByteString。 (注意:我們可以假定作者加載了一個腳本,其中包含以下import qualified Data.ByteString.Lazy as B
)
ghci> B.cons 85 $ B.pack [80,81,82,84]
Chunk "U" (Chunk "PQRT" Empty)
ByteStrings如何在我的計算機上顯示:
Prelude> import qualified Data.ByteString.Lazy as B
Prelude B> B.cons 85 $ B.pack [80,81,82,84]
"UPQRT"
您所引用的補丁程序顯示了舊版本和較新版本的字節串之間的區別,其中較新版本使用了手寫的Show
實例。 您不應該安裝它,只是LYAH在這里和那里需要一些更新(在過去的幾年中,Haskell的發展非常迅速)。
ByteString
構造函數實際上已ByteString
私有,您不能直接使用它們。 因此, Show
實例應該輸出一個可以轉換為ByteString
的String
,最簡單的方法是使用pack
或OverloadedStrings
擴展名。
還有就是toChunks
在功能Data.ByteString.Lazy
,但我不知道它正是你想要的。 基本上,您應該將ByteString
實現視為私有的,並且僅使用導出的庫函數來確保不破壞任何內容。 這等效於想要查看Data.Map.Map
的內部Data.Map.Map
,只是使用起來不太好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.