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
String 在3时分开,然后继续分开_String_Haskell_Split - Fatal编程技术网

String 在3时分开,然后继续分开

String 在3时分开,然后继续分开,string,haskell,split,String,Haskell,Split,我想在Haskell中每隔3个字母拆分一个字符串 我曾尝试使用splitAt,但我必须重复此操作,直到字符串每3个字母拆分一次 有办法做到这一点吗 例如 “WEAREDISCOVERED”将变成[“WEA”、“RED”、“ISC”、“OVE”、“RED”] 所以这适用于任何类型的列表,包括字符串。因此,如果列表为空,我们只返回一个空列表。否则,我们将在3处拆分。幸运的是,splitAt是智能的,如果剩余列表太短,则只返回一个、两个或无。然后,我们将开始字符串附加到剩余everyThree列表的头

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

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

有办法做到这一点吗

例如

“WEAREDISCOVERED”
将变成
[“WEA”、“RED”、“ISC”、“OVE”、“RED”]

所以这适用于任何类型的列表,包括字符串。因此,如果列表为空,我们只返回一个空列表。否则,我们将在3处拆分
。幸运的是,
splitAt
是智能的,如果剩余列表太短,则只返回一个、两个或无。然后,我们将开始字符串附加到剩余
everyThree
列表的头部

import Data.List.Split (chunksOf)

everyThree :: [a] -> [[a]]
everyThree = chunksOf 3

如今Data.List.Split是Haskell平台的一部分

实际上,这并不管用:chunk::Int->[a]->[[a]]chunk[]=[]chunk n xs=first:chunk n rest where(first,rest)=splitAt n xs
takeWhile(not.null)。Unfover(Just.splitAt 3)$“QWERQWER”
可以满足您的需要<代码>展开器
数据列表
中定义。
import Data.List.Split (chunksOf)

everyThree :: [a] -> [[a]]
everyThree = chunksOf 3