1
我有一个字符串x
可能或不可以gzip压缩。使用zlib
库,我想尝试解压缩x
- 如果成功,该函数将返回压缩字符串。如果不是(即x
不是用gzip压缩的),我想简单地返回x
。处理哈斯克尔zlib解压缩错误
作为GZip.decompress
如果施加到非gzip的字符串产生一个error
,我可以使用catch
或相似,但我特别要求使用该zlib
错误处理机制的溶液。
我该如何编写一个函数,比如decompressIfPossible :: ByteString -> ByteString
,它具有上述的特性?我更喜欢Either String ByteString
来表示错误或解压缩结果。
注意:此问题故意不显示研究工作,因为它立即以A风格的方式回答。