1
我有一個字符串x
可能或不可以gzip壓縮。使用zlib
庫,我想嘗試解壓縮x
- 如果成功,該函數將返回壓縮字符串。如果不是(即x
不是用gzip壓縮的),我想簡單地返回x
。處理哈斯克爾zlib解壓縮錯誤
作爲GZip.decompress
如果施加到非gzip的字符串產生一個error
,我可以使用catch
或相似,但我特別要求使用該zlib
錯誤處理機制的溶液。
我該如何編寫一個函數,比如decompressIfPossible :: ByteString -> ByteString
,它具有上述的特性?我更喜歡Either String ByteString
來表示錯誤或解壓縮結果。
注意:此問題故意不顯示研究工作,因爲它立即以A風格的方式回答。