haskell(22)

来源:互联网 发布:4k网络机顶盒排行榜 编辑:程序博客网 时间:2024/05/22 05:23

Concatmap先完成map,然后再完成concat操作:

Prelude> concatMap (replicate 3) [1,2,3,4] 

[1,1,1,2,2,2,3,3,3,4,4,4]

andor对列表中的参数做逻辑与和逻辑或的操作

Prelude> and $map odd [1,234,23,55,33,90]

False

Prelude> or $map odd [1,234,23,55,33,90]

True

allany分析列表中的所有元素,all在所有元素为True的情况下才会返回True,any只要一个元素为True就返回True。  

Prelude> all odd [1,34,90,21]

False

Prelude> any odd [1,34,90,21]

True

Prelude> 

Iterate将函数应用在第二个参数上,产生第一个结果做为列表中的第一个元素,然后将这个结果做为参数继续产生第二个结果,以此类推,无限循环

Prelude> iterate (*3) 3

[3,9,27,81,243,729,2187,6561,19683,59049............................................

splitAt的第一个参数指示位置,然后在列表的位置处将列表分割成2个列表。

Prelude> splitAt 4 "hello,world"

("hell","o,world")

Prelude> splitAt 4 [1,2,3,4,5,6,7,8.9]

([1.0,2.0,3.0,4.0],[5.0,6.0,7.0,8.9])

takeWhile对列表的元素应用函数,直到函数返回False后停止,成功通过函数的放在结果列表中。

Prelude> takeWhile odd [1,3,5,7,2,88,12]

[1,3,5,7]

dropWhile删除元素直到函数返回Fasle

Prelude> dropWhile odd [1,3,5,7,2,88,12,33]

[2,88,12,33]

Prelude> dropWhile odd [1,3,6,7,2,88,12,33]

[6,7,2,88,12,33]

Prelude> 

break在返回为True的地方将列表截断为2个部分,span在返回为False的地方将列表截断为2个部分

Prelude>  break odd [18,16,7,2,88,12,33,11,7]

([18,16],[7,2,88,12,33,11,7])

Prelude>  span odd [3,7,15,16,7,2,88,12,33,11,7]

([3,7,15],[16,7,2,88,12,33,11,7])

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

http://blog.csdn.net/u010255642


原创粉丝点击