0

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

4

1 回答 1

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)
于 2013-08-01T14:53:12.927 回答