第六章:常用的列表操作
列表的定義限定了列表中的型別一定都是相同的。
1.對映
把從a到b的函式對映成了從[a]到[b]的函式,這個函式保留了元素的一一對應關係。
map :: (a -> b) ->[a] -> [b]
map _ [] = []
map f (x:xs) = f x : map f xs
2.過濾
filter :: (a -> Bool) -> [a] -> [a]
filter _ [] = []
filter p xs = [ x | x <- xs, p x]
3.摺疊
fold——map-reduce,把一個列表聚合成一個的操作,幾乎所有遞迴處理列表的函式都可以通過摺疊來實現。摺疊式順序遞迴操作的物件。
foldr :: (a -> b -> b) -> b -> t a -> b
foldr _ aac [] = aac
foldr f aac (x:xs) = foldr f x (f aac xs)
foldl :: (a -> b -> b) -> b -> t a -> b
foldl _ aac [] = aac
foldl f aac (x:xs) = foldl f (f aac x) xs
4.掃描
把摺疊時每一步的累計值都記錄下來,生成一個新的列表
scanl :: (b -> a -> b) -> b -> [a] -> [b]
scanl f z [x1, x2, ...] == [z, z `f` x1, (z `f` x1) `f` x2, ...]
last (scanl f z xs) == foldl f z xs
head (scanr f z xs) == foldr f z xs
5.方向是相對的
如何使用foldr實現foldl?
相關文章
- Python操作列表的常用方法總結Python
- 常用的sql列表SQL
- Python 列表 list 陣列 array 常用操作集錦Python陣列
- Python 列表 list 陣列 array 常用操作集錦薦Python陣列
- 第六章 檔案操作
- python中的列表操作Python
- 常用埠列表(轉)
- [PY3]——內建資料結構(1)——列表及其常用操作資料結構
- Python中列表常用的方法Python
- tcl列表操作lsearch
- 列表巢狀操作巢狀
- Python基礎-列表操作(2):列表的遍歷和數字列表Python
- KVM的常用操作
- Promethues的常用操作
- 04-python的列表操作Python
- python列表元組的操作Python
- iptables常用規則列表
- Qt5 中常用的模組列表:QT
- 列表及相關操作
- Python列表切片操作Python
- RxJava操作符列表RxJava
- 例2.3 列表操作示例
- Django常用的QuerySet操作Django
- MySQL 常用的UPDATE操作MySql
- vi命令的常用操作
- linux的常用操作Linux
- Netty的常用操作Netty
- python之 列表常用方法Python
- Oracle 常用SQL查詢列表OracleSQL
- C++常用知識列表C++
- Linux下的常用軟體列表(轉)Linux
- ssycms不常用的文章列表呼叫程式碼
- 『無為則無心』Python序列 — 18、Python列表概念及常用操作APIPythonAPI
- MongoDB的常用Query操作及操作符MongoDB
- Python列表操作方法Python
- Python 列表操作指南1Python
- Python 列表操作指南3Python
- Python元組、列表、集合及列表去重操作Python