Concatmap先完成map,然后再完成concat操作:
Prelude> concatMap (replicate 3) [1,2,3,4]
[1,1,1,2,2,2,3,3,3,4,4,4]
and和or对列表中的参数做逻辑与和逻辑或的操作
Prelude> and $map odd [1,234,23,55,33,90]
False
Prelude> or $map odd [1,234,23,55,33,90]
True
all和any分析列表中的所有元素,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])