[JS] Functional Programming and Currying
Functional Programming 是一種程式撰寫的風格,會把函式當成參數傳入,並以沒有 side effect 的方式回傳另一個函式。這也衍伸了一些概念:
- Pure Function
- Currying
- Higher-Order Function
什麼是 Pure Function
Pure function 有兩個明確的定義:
- 當帶入相同的參數時,一定會得到相同的結果,又稱作 deterministic。
- 它不會造成任何可觀察到的副作用(observable side effects),所有的變數多是 immutable 的。
當一個函式是 pure function 且 immutable data,那麼我們可以稱作 referential transparency
immutability 指的是不會隨著時間改變。