Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell ByteString是否有附加运算符?_Haskell_Concatenation_Bytestring - Fatal编程技术网

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"