0
我目前正在嘗試瞭解如何處理`Maybe(Int,ByteString)'函數的返回類型Data.ByteString.Char8.readInt,我已經通過類型檢查移除了Maybe,但是不明白如何進一步處理我現在擁有'(Int,ByteString)'的類型。我覺得我很可能錯過了一些明顯的東西,我希望有人能指出我正確的方向。任何幫助表示讚賞!Haskell ByteString readInt返回類型問題
我目前正在嘗試瞭解如何處理`Maybe(Int,ByteString)'函數的返回類型Data.ByteString.Char8.readInt,我已經通過類型檢查移除了Maybe,但是不明白如何進一步處理我現在擁有'(Int,ByteString)'的類型。我覺得我很可能錯過了一些明顯的東西,我希望有人能指出我正確的方向。任何幫助表示讚賞!Haskell ByteString readInt返回類型問題
readInt
設計用於編寫非常高效的模式匹配循環。例如。以ascii格式總和一個數字文件:
import qualified Data.ByteString.Lazy.Char8 as S
main = print . go 0 =<< S.getContents
where
go !n !s = case S.readInt s of -- lazily reads current line
Nothing -> n
Just (k,t) -> go (n+k) (S.tail t)
使用'fst'或模式匹配。 – chirlu
乾杯! fst就在工作之前就像一個魅力! – stickybynature
您應該使用模式匹配,或者至少知道如何使用它 - 它比'fst'更基礎。無論如何,你可能是模式匹配來處理'Maybe' - 我的意思是,你當然不會使用'fromJust',對吧? ('fromJust'是一個部分函數,這意味着它會在程序失敗時崩潰 - 並且也帶有無益的錯誤信息,你應該幾乎不會使用它。) – shachaf