🎋 竹子日誌

關於 Functional Programming

最近的時間都壓在這個上面研究,起因是學生許願想聽聽所謂的 FP 是什麼,一開始想簡單介紹一下,結果不知不覺就花了很多時間在上面。其實也蠻感謝學生挖了這個坑,我開始大量嘗試在各種寫 Code 的習慣挑戰這種思考模式。

一開始要先從習慣使用陳述式轉換到去寫表達式,這感覺還不是大問題。但最有感的應該是開始要習慣 immutability 的變數使用習慣,開始感到函式抽象化難度提高。正當覺得很順利掌握這些觀念時,這才是 FP 學習之路的開始。

這也大概是這幾個月,大量去閱讀各種 FP 函式庫使用技巧。熟悉 curry function 的使用,理解它的應用場景與使用理由。最近開始習慣把函式當作傳遞的參數,而不是習慣去使用資料當參數,建立函式一等公民的操作手感。傳入是函式,傳出是函式,只有輸入與輸出是資料的方式。

練習歸練習,雖然 FP 的維護性和簡潔性都很高,也極容易閱讀,但這種撰寫方式並不是這麼容易被學習,比較跳脫一般寫程式的直覺,我也不敢任意在需要與他人合作的應用場景去使用。這也是近期教導學生與自我學習的過程中理解門檻,大概也知道為什麼 FP 雖然被許多人推崇缺極少能夠在工作的場域看到人去使用。

對自我的精進當然持續前進,繼續挖坑給自己跳(???

留言