判斷基偶數也是常用功能,也能使用 Function Composition 實現。
Version
macOS Catalina 10.15
VS Code 1.39.2
Quokka 1.0.258
Ramda 0.26.1
Wink-fp 0.1.27
Ramda
import { filter } from 'ramda';
let data = [1, 2, 3];
filter(x => x % 2)(data); // ?
若想要找出 array 中所有的奇數 element,可使用 filter()
搭配判斷奇數的 predicate。
Point-free
import { filter, compose, equals, flip, modulo } from 'ramda';
let data = [1, 2, 3];
let isOdd = compose(equals(1), flip(modulo)(2));
filter(isOdd)(data); // ?
若要使 filter()
的 predicate 也 point-free,可組合 modulo()
與 equals()
。
Wink-fp
import { filter } from 'ramda';
import { isOdd } from 'wink-fp';
let data = [1, 2, 3];
filter(isOdd)(data); // ?
Wink-fp 已經提供 isOdd()
,可直接使用。
isOdd()
Number -> Boolean
判斷是否為奇數
Number
:data 為 number
Boolean
:回傳為 true
或 false
Conclusion
- Wink-fp 亦提供
isEven()
判斷是否為偶數,原理與isOdd()
相同
Reference
Ramda, filter()
Ramda, compose()
Ramda, modulo()
Ramda, flip()
Ramda, equals()