是否有ByteString的追加运算符?

时间:2018-02-21 09:38:28

标签: haskell concatenation bytestring

对于String,有++,其类型为

> :t (++)
(++) :: [a] -> [a] -> [a]

显然它不适用ByteString,因为它不是一个列表。我看到了append函数,但它有一个运算符吗?

2 个答案:

答案 0 :(得分:14)

ByteString有一个Monoid实例,因此可以通过(Data.Monoid.<>)组合幺半群的常规方式进行组合。

同一个运算符也适用于字符串,因为String ~ [Char][a]有一个Monoid实例(<>) = (++)

Prelude Data.Monoid Data.ByteString.Char8> unpack $ pack "abc" <> pack "def"
"abcdef"

这里我将两个字符串转换为ByteStrings,将它们组合为ByteStrings,然后转换回String以证明它有效。

答案 1 :(得分:0)

concat :: [ByteString]-> ByteString

O(n)连接一个ByteString列表。