haskell(6)

来源:互联网 发布:医疗 教育 gis 数据 编辑:程序博客网 时间:2024/05/17 04:45

本博客所有内容是原创,未经书面许可,严禁任何形式的转载。

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>