Haskell ByteString readInt返回类型问题

时间:2013-07-31 22:10:48

标签: haskell integer bytestring

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

1 个答案:

答案 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)