string - SplitAt 3 然后继续 split

标签 string haskell split

我想在 Haskell 中每 3 个字母拆分一个字符串。

我曾尝试使用 splitAt,但我必须重复此操作,直到字符串每 3 个字母被拆分一次。

有办法吗?

例如

"WEAREDISCOVERED" 将变为 ["WEA","RED","ISC","OVE","RED"]

最佳答案

everyThree :: [a] -> [[a]]
everyThree [] = []
everyThree xs = begin : everyThree remain
   where (begin, remain) = splitAt 3 xs

所以这适用于任何类型的列表,包括字符串。因此,如果列表为空,我们只返回一个空列表。否则我们splitAt 3。幸运的是,splitAt 很聪明,如果剩余列表太短,它将只返回 1、2 或不返回。然后我们将该起始字符串附加到剩余的 everyThree 列表的头部。

关于string - SplitAt 3 然后继续 split ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19568178/

相关文章:

python - 在 Python 中拆分一个字符串并从列表中提取几个字段

java - 将文本附加到 EditText 中字符串的中间

c - C中的字符串数组初始化

haskell - 用于简化递归的惯用 Haskell 代码

haskell - Haskell 中的 print 是纯函数吗?

javascript - 在 n 个元素之后将数组拆分为 block

python - 使用 Python 3.4 将 header 添加到逗号分隔的字符串

c - 函数和指针交互

haskell - 欧拉项目 10 - [haskell] 为什么这么低效?

python - 拆分 Pandas 列并对值求和