ByteStringとTextには標準の(純粋な)マップ関数があります。
map :: (Word8 -> Word8) -> ByteString -> ByteString
map :: (Char -> Char) -> Text -> Text
しかし、私は彼らのモナディック/アプリケーションの対応物が欠けています:
traverse :: (Applicative f) => (Word8 -> f Word8) -> ByteString -> f ByteString
traverse :: (Applicative f) => (Char -> f Char) -> Text -> f Text
(もしあれば、traverse
定義することができますmapM f = unwrapMonad . traverse (WrapMonad . f)
。)
パッケージを調べてHoogleを試しましたが、見つかりませんでした。私は何かを見落としましたか?または、それらが欠落している理由がありますか(効率的に定義することが不可能/簡単であるなど)?