小编T.N*_*Naz的帖子

从无限列表中取出所有长度为4的子字符串

我对Haskell还是很陌生,并且正在尝试解决以下问题:

我有一个函数,该函数生成无限长的字符串,这些字符串的长度不同。但是一定长度的字符串数量受到限制。

现在,我要提取具有一定长度n的列表的所有子字符串。不幸的是,我做了很多研究,尝试了很多东西,但对我没有任何帮助。

我知道这filter()行不通,因为它会检查列表的每个部分并导致无限循环。

这是我生成无限列表的函数:

allStrings =  [ c : s | s <- "" : allStrings, c <- ['R', 'T', 'P']]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了:

allStrings = [x | x <- [ c : s | s <- "" : allStrings, 
                  c <- ['R', 'T', 'P']], length x == 4] 
Run Code Online (Sandbox Code Playgroud)

并没有终止。

谢谢你的帮助!

haskell functional-programming list enumerate infinite

5
推荐指数
1
解决办法
94
查看次数