簡體   English   中英

Haskell:如何添加補丁?

[英]Haskell: how to add a patch?

我在“了解Haskell的學習”的IO一章中,注意到我為我顯示的字節串與書中的屏幕截圖之間存在差異(請參見下面的示例)。 除非人們有其他建議,否則似乎解決方案(至少根據此帖子 )是安裝此補丁

這可能是一個非常基本的問題,但是...我該如何安裝這種類型的補丁?

當然也可以接受其他建議,例如:如何讓ghci顯示正確的ByteString格式。


我的設置/系統:

  • ghci 7.6.3(通過Haskell平台安裝)
  • Xubuntu 14(VirtualBox)

書中如何顯示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實例應該輸出一個可以轉換為ByteStringString ,最簡單的方法是使用packOverloadedStrings擴展名。

還有就是toChunks在功能Data.ByteString.Lazy ,但我不知道它正是你想要的。 基本上,您應該將ByteString實現視為私有的,並且僅使用導出的庫函數來確保不破壞任何內容。 這等效於想要查看Data.Map.Map的內部Data.Map.Map ,只是使用起來不太好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM