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]