Haskell ByteString是否有附加运算符?
对于字符串,有Haskell ByteString是否有附加运算符?,haskell,concatenation,bytestring,Haskell,Concatenation,Bytestring,对于字符串,有++,它的类型为 > :t (++) (++) :: [a] -> [a] -> [a] 显然,它不适用于ByteString,因为它不是一个列表。我看到了这个函数,但是它有操作符吗?ByteString有一个半群实例,因此它可以用半群组合的通常方式组合,使用() 同样的操作符也适用于字符串,因为String~[Char]和[a]有一个半群实例,其中()=(++) Prelude Data.ByteString.Char8>解包$pack“abc”pack“de
++
,它的类型为
> :t (++)
(++) :: [a] -> [a] -> [a]
显然,它不适用于
ByteString
,因为它不是一个列表。我看到了这个函数,但是它有操作符吗?ByteString有一个半群实例,因此它可以用半群组合的通常方式组合,使用()
同样的操作符也适用于字符串,因为String~[Char]
和[a]
有一个半群实例,其中()=(++)
Prelude Data.ByteString.Char8>解包$pack“abc”pack“def”
“abcdef”
在这里,我将两个字符串转换为ByteString,将它们组合为ByteString,然后再转换回String,以证明它是有效的。concat::[ByteString]->ByteString
O(n)连接一个bytestring列表。您可以使用backticks,从而使用
bs1`append`bs2
您的答案可能是对现有答案的有用补充,但也肯定会受益于叙述性解释。
Prelude Data.ByteString.Char8> unpack $ pack "abc" <> pack "def"
"abcdef"