Ral*_*lph 3 base64 haskell split map
我正在编写一个运行在ByteString值列表上的Haskell函数.我需要对第一个和最后一个项目执行不同的操作(如果列表只有一个项目,则可能相同).
具体来说,我想写出以下内容:
"item-1\
\item-2\
\item-3\
...
\item-n"
Run Code Online (Sandbox Code Playgroud)
其中item-1以双引号item-n开头,以反斜杠结尾,以反斜杠开头,以双引号结束.所有项目之间item-1和item-n开始和结束都有反斜杠.我发布了一个base64编码的值作为Haskell String进行一些代码生成.我已经将原始(长)base64编码ByteString分成了每个64个字符长的块.
Ral*_*lph 11
我刚刚意识到我的问题是愚蠢的.
我可以intercalate用来"\\\n\\"在项目之间注入,然后在前面添加一个双引号:
import qualified Data.ByteString.Lazy.Char8 as L
(L.pack "\"") `L.append` (L.intercalate "\\\n\\" items) `L.append` (L.pack "\"")
Run Code Online (Sandbox Code Playgroud)
样本输出:
"H4sIAAAAAA\
\AAA2NgAAMm\
\CMXA7JRYxI\
\Am5JafD2Uy\
\AgDvdHs6Lg\
\AAAA==\
\"
Run Code Online (Sandbox Code Playgroud)