Function Composition (TypeScript vs. F#)
同時以 TypeScript 與 F# 實作 Compose Function
數學的 fog(x) = f(g(x))
就是 FP 的 Function Composition,本文分別以 TypeScript 與 F# 實現。
Version
TypeScript 2.5.3
F# 4.1
User Story
定義 f(x) = x + 1
與 g(x) = x * 2
,希望實作出 fog(x) = f(g(x))
Task
分別以 TypeScript 與 F# 實作。
TypeScript
1 | const f = x => x + 1; |
第 3 行
1 | const fog = x => f(g(x)); |
使用 arrow function 實作,重點是仍然回傳的 f(g(x))
仍是 function。
FSharp
1 | let f x = x + 1 |
第 3 行
1 | let fog = g >> f |
以 g >> f
表示,很清楚以 從左至右
表示。
Conclusion
- 至於 TypeScript 與 F# 何者語法較優,結果已經很明顯了。