range

发布时间 2023-04-01 02:08:21作者: 牧羊龟

range

range是一种创建包含可枚举元素等差序列的list的方法

要创建一个包含从1到20的所有自然数的list,只需写

[1..20]

它相当于

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

还可以创建字符list,如下

['a'..'z']
['K'..'Z']

指定range的步长,需要用逗号分隔前两个元素,然后指定上限。如下

[2, 4..20]
[3, 6..20]

创建一个包含从20到1的所有数字的列表,如下

[20, 19..1]

建议不要使用带浮点数的range

无限列表

可以使用range创建无限列表,只需要不指定上限,如下

[1..]
take 10 [10, 20..]

cycle函数

cycle函数接受一个list,并创建这个list的无限循环,如果试图显示结果,它将永远不会结束,必须在某个地方剪切它,如下

take 10 (cycle [1, 2, 3])
[1,2,3,1,2,3,1,2,3,1]

repeat函数

repeat函数接受一个元素,并生成一个包含该重复元素的无限列表,相当于用单一的元素循环一个list,如下

take 10 (repeat 5)
[5,5,5,5,5,5,5,5,5,5]

当然,这里使用replicate函数会获得相同的结果,如下

replicate 10 5
[5,5,5,5,5,5,5,5,5,5]