我目前正在尝试理解如何使用函数Data.ByteString.Char8.readInt处理`Maybe(Int,ByteString)'的返回类型,我已经删除了Maybe by类型检查但是不明白如何进一步处理我现在拥有的'(Int,ByteString)'类型。我觉得我可能错过了一些明显的东西,我希望有人可以指出我正确的方向。任何帮助表示赞赏!
答案 0 :(得分:1)
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)