SplitAt 3 然后继续分裂

2024-01-09

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

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

有没有办法做到这一点?

E.g

"WEAREDISCOVERED"会成为["WEA","RED","ISC","OVE","RED"]


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SplitAt 3 然后继续分裂 的相关文章

随机推荐