將 String 字首變大寫為常見功能,FP 有其特殊實現方式,由於經常使用,已經收錄在 Wink-fp。
Version
Wink-fp 1.27.9
capitalize()
import { compose, head, toUpper, tail, toLower, converge, concat } from 'ramda'
let capitalize = converge(
concat, [
compose(toUpper, head),
compose(toLower, tail)
]
)
capitalize('sAm') // ?
使用 converge()
組合 capitalize()
:
concat
:將兩 String 合併compose(toUpper, head)
:先取出首字,然後轉成大寫compose(toLower, tail)
:先取出首字以外 String,然後轉成小寫
Wink-fp
import { capitalize } from 'wink-fp'
capitalize('sAm') // ?
Wink-fp 已經內建 capitalize()
可直接使用。
capitalize()
String -> String
將 String 字首變大寫
String
:data 為 String
String
:將 String 字首變大寫回傳
Conclusion
- String 可視為 Char Array,
head()
與tail()
為 FP 常見處理 Array 技巧,最後再使用concat()
合併