【发布时间】:2014-02-14 04:03:54
【问题描述】:
我有一个字符串x,它可能是gzip 压缩的,也可能不是。使用zlib库,我想尝试解压x——如果成功,函数将返回压缩后的字符串。如果不是(即x 不是 gzip 压缩的)我想简单地返回 x。
由于GZip.decompress 生成error 如果应用于非gzip 字符串,我可以使用catch 或类似的,但我特别要求使用zlib 错误处理机制的解决方案。
我如何编写一个函数,比如decompressIfPossible :: ByteString -> ByteString,它具有前面描述的特征?我更喜欢Either String ByteString 来表示错误或解压结果。
注意:这个问题故意不显示研究成果,因为它立即以问答式的方式回答。
【问题讨论】:
标签: haskell gzip haskell-zlib