本博客所有内容是原创,未经书面许可,严禁任何形式的转载。
http://blog.csdn.net/u010255642
J .删除前n个元素后形成新的列表
Prelude> drop 2 mylist
[33,44,55,66,7]
Prelude> drop 3 mylist
[44,55,66,7]
Prelude>
K.取列表中的最大值和最小值
Prelude> maximum mylist
66
Prelude> minimum mylist
1
L.求列表元素之和以及乘积
Prelude> sum mylist
228
Prelude> product mylist
811697040
Prelude>
3)列表元素自动生成:系列(ranges)
我们可以使用系列ranges来自动生成规则的列表元素,用“..”指示省略的元素
Prelude> let mylist1=[1..15]
Prelude> mylist1
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
Prelude> let mylist2=[8..15]
Prelude> mylist2
[8,9,10,11,12,13,14,15]
Prelude> let mylist3=['a'..'i']
Prelude> mylist3
"abcdefghi"
也可使用更智能的方式,生成等差数列,haskell会自动生成“..”省略的元素。
Prelude> let mylist2=[2,4..20]
Prelude> mylist2
[2,4,6,8,10,12,14,16,18,20]
Prelude>
Prelude> let mylist3=['a','c'..'i']
Prelude> mylist3
"acegi"
Prelude>
3)元素循环
A.生成无限循环
Prelude> mylist
[1,22,33,44,55,66,7]
可以使用cycle函数
Prelude> cycle mylist
Prelude> mylist
[1,22,33,44,55,66,7]
Prelude>
[1,22,33,44,55,66,7,1,22,33,44,55,66,7,1,22,33,44,.........................
或者使用repeat函数
Prelude> repeat 2
[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,..................
B.循环n次
从无限循环中取(n*列表长度)个元素即可
Prelude> take 6 (cycle [1,2,3])
[1,2,3,1,2,3]
Prelude> take (3*(length mylist)) (cycle mylist)
[1,22,33,44,55,66,7,1,22,33,44,55,66,7,1,22,33,44,55,66,7]
Prelude>
C.将参数整体做为独立元素重复n次,生成新的列表
Prelude> replicate 3 22
[22,22,22]
Prelude> replicate 3 mylist
[[1,22,33,44,55,66,7],[1,22,33,44,55,66,7],[1,22,33,44,55,66,7]]
Prelude> replicate 2 mylist
[[1,22,33,44,55,66,7],[1,22,33,44,55,66,7]]
Prelude>