如何在Haskell中向字符串添加空格

use*_*400 1 haskell

我有一个字符串"AB0123456789",我想要的输出是:"AB01 2345 6789"...我想在每四个字符后添加一个空格.我怎样才能做到这一点?

Main> addSpace "AB0123456789"
"AB01 2345 6789"
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 13

有了Data.List.intercalateData.List.Split.chunksOf这个很简单:

import Data.List.Split

addSpace :: String -> String
addSpace = intercalate " " . chunksOf 4
Run Code Online (Sandbox Code Playgroud)


Sib*_*ibi 5

这可能不是最有效的:

addSpace xs = if length xs <= 4
              then xs
              else take 4 xs ++ " " ++ addSpace (drop 4 xs)
Run Code Online (Sandbox Code Playgroud)

ghci 中的演示:

ghci > addSpace "AB0123456789"
"AB01 2345 6789"
Run Code Online (Sandbox Code Playgroud)