標籤:

Pipeline語法支持,還是flowpython

圖片A站的。

累炸了,少說幾句。

  1. 感謝 @劉豐愷 同學提供macos預編譯版。明後天就寫安裝程序(開學了,事情多。
  2. 新語法Pipeline,Python-Idea的都覺得arrow transform不如pipeline,但實際上我實現前者的難度大很多。在文末放實例圖片。
  3. 修改了flowpython.fp里的部分函數,把flow_map柯里化接受參數順序改為先接受函數再接受迭代對象,flow_reduce、foreach、groupby、fastmap、flat_map同理,為了方便書寫pipeiline。andThen和 compose是柯里化的,只組合兩個函數,要組合多個函數可以使用AndThen和Compose,它們接受不定長函數參數。
  4. pipeline的速度比AndThen,Compose和arrow transform更快。
  5. 模式匹配關鍵字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 |