elemIndex和elemIndices在列表中查找元素,elemIndex返回找到的第一个元素的位置,而elemIndices返回找到的所有元素的位置。
Prelude Data.List> 66 `elemIndex` [1,23,66,2,6,90]
Just 2
Prelude Data.List> 23 `elemIndex` [1,23,66,23,6,90]
Just 1
Prelude Data.List> 23 `elemIndices` [1,23,66,23,6,90]
[1,3]
findIndex和findIndices在列表中查找符合函数要求的元素,findIndex返回第一个元素,而findIndices返回所有满足要求的元素。
Prelude Data.List> findIndex (==23) [1,23,66,23,6,90]
Just 1
Prelude Data.List> findIndices (==23) [1,23,66,23,6,90]
[1,3]
zip4类似于zip,但接收4个列表做为参数。
*Main Data.List> zip4 [1,2,3] [4,5,6] [7,8,9] [10,11,12]
[(1,4,7,10),(2,5,8,11),(3,6,9,12)]
*Main Data.List>
zip3同上,
*Main Data.List> zip3 [1,2,3] [4,5,6] [7,8,9]
[(1,4,7),(2,5,8),(3,6,9)]
zipWith3和zipWith4与zip3和zip4类似,但是将列表中元素分别参与函数运算。
*Main Data.List> zipWith3 (\x y z->x^2+y^2+z^2) [1,2,3] [4,5,6] [7,8,9]
[66,93,126]
*Main Data.List> zipWith4 (\x y z b->x^2+y^2+z^2+b) [1,2,3] [4,5,6] [7,8,9] [10,11,12]
[76,104,138]
*Main Data.List>