获得徽章 0
- 有的人不能理解为什么函数式编程更简洁,他们看起来似乎很臃肿。
我发现主要是两个原因:
1. 很多人并没有使用纯正的函数式编程语言写函数式,比如用JS或者Java,函数式很多特性他们没有,需要去借助一些东西实现,因此略显臃肿。
2. 更重要的原因是他们对函数式不够熟悉,可能只是接触了皮毛。 我举个简单的例子。
假如我要实现一个功能,判断一个值是否为空对象。
```js
function isObject(a) {
return a.toString() === "[object Object]";
}
function isEmptyObject(a) {
return isObject(a) && Object.keys(a).length === 0;
}
```
那我现在想是一个功能,判断一个对象为非空对象呢?
```js
function not(func) {
return (...a) => {
return !func(...a);
};
}
const isEmptyObject = not(isEmptyObject);
```
这个not函数可以和很多其他判断逻辑进行组合派生出无数的函数。
这种是`逻辑上的简化,而非概念上的简化`。
所以说函数式编程最最难的是用函数式的思维去思考问题。展开712