我想创建一个无限列表,如下所示
this.something
我已经尝试了很多,我能想到的最好的是
(1:[]):(2:2:[]):(3:3:3:[]) ...
我确信这需要递归完成,但我无法看到它
任何提示或帮助都会非常感谢
答案 0 :(得分:3)
这个怎么样:
concatMap (\x -> replicate x x) [1..]
它没有明确的递归,但可以做你想要的。
正如Keshav Kini所指出的,你可能想要没有连接的版本:
map (\x -> replicate x x) [1..]
答案 1 :(得分:1)
以下是递归定义的提议:
lss = [1]:map (\ls -> (1+head ls):(map (+1) ls)) lss
(即使复制解决方案更短!)