小编Arn*_*ack的帖子

在Haskell中将异常序列实现为无限列表

我有两个元素作为列表的开头[1、2]

这种不同寻常的顺序是,它会复制跟随三个元素的某种类型的位数。例如,在1和2之后,我们将有另一个2,然后是两个1。所需列表的前几个元素将产生

[1、2、2、1、1、1、2、1、2、2、1、2、2、1、1、2、1、1、2、2]因为

1  2   2  1 1   2  1  2   2  1   2   2
Run Code Online (Sandbox Code Playgroud)

其中前面的数字表示同一数字的最小序列的长度。

到目前为止,我已经尝试使用该replicate函数根据列表中前面的元素重复相同的数字。

selfrle :: [Int]
selfrle = 1 : 2 : [x | a <- [0..], let x = replicate (selfrle !! a) (selfrle !! (a + 1))) ]
Run Code Online (Sandbox Code Playgroud)

问题是我不知道为什么它不起作用。

algorithm haskell sequence lazy-sequences

4
推荐指数
1
解决办法
128
查看次数

标签 统计

algorithm ×1

haskell ×1

lazy-sequences ×1

sequence ×1