我正在解析一个相当大的文件,我想定期更新一个进度条以指示到目前为止我已经解析了多少。
我能想到的最直接的方法是ParsecT用作 monad 转换器,IO这样我就可以提升打印进度条更新,并使用 aHandle作为流提供程序,这样我就可以使用hFileSizeand检查进度hTell。
所以这意味着我需要一个实例Stream Handle IO Char。滚动我自己的(使用)应该不难,hGetChar但我想我会看看是否已经存在一个,以处理任何不可预见的问题(比如我是否需要插入一些缓冲以提高速度)。