Pipeline語法支持,還是flowpython
圖片A站的。
累炸了,少說幾句。
- 感謝 @劉豐愷 同學提供macos預編譯版。明後天就寫安裝程序(開學了,事情多。
- 新語法Pipeline,Python-Idea的都覺得arrow transform不如pipeline,但實際上我實現前者的難度大很多。在文末放實例圖片。
- 修改了flowpython.fp里的部分函數,把flow_map柯里化接受參數順序改為先接受函數再接受迭代對象,flow_reduce、foreach、groupby、fastmap、flat_map同理,為了方便書寫pipeiline。andThen和 compose是柯里化的,只組合兩個函數,要組合多個函數可以使用AndThen和Compose,它們接受不定長函數參數。
- pipeline的速度比AndThen,Compose和arrow transform更快。
- 模式匹配關鍵字condic改為condef(也兼容condic)。
#pipeline: "->>" 為管道操作啟動符npy> 1 ->> .x->x+1npy> 2npy> range(100) ->> f1 n => f2 n => groupby(.x->x) n => lambda Dict: map(.key->(key,len(Dict[key])), Dict) n => dict n => print where:n from flowpython.fp import groupbyn f1 = . seq -> map(.x->x%2, seq)n f2 = . seq -> filter(.x -> x, seq)npy> {1:50}n
寫在後面:
Pipeline能做的,其實不過就是個andThen。
arrow transform表達能力是最強的,雖然你有時要多寫幾個下劃線 _ 。
然而我懷著不滿把這個語法弄出來後,覺得還是挺好看的,頓時心情好了很多。
推薦閱讀:
※Python非同步io的Web框架-Sanic源碼分析(核心篇)
※Python程序中不同的重啟機制
※學習編程的時候不會那些數學題還可以繼續學嗎?
※Python · SVM(四)· SMO 演算法
TAG:Python |