Functional Thinking 函数式编程思维 阅读纪录
转变思维
- 多从结果着眼,少纠结具体的实现
- 高阶函数消除了摩擦
- 不要增加无畏的摩擦
- 需要根据筛选条件来产生一个子集合的时候用filter
- 需要就地变换一个集合的时候, 用map
- 需要把集合分成一小块一小块来处理的时候用reduce
权责让渡
- 迭代让位于高阶函数, 理解掌握的抽象层次永远要比日常使用的抽象层次更深一层。
- 让语言去管理状态, 抓住上下文,而非状态。
- 利用递归,把状态的管理责任推给运行时。
用巧不用蛮
- 确保所有的记忆函数: 没有副作用, 不依赖任何外部信息。
- 用语言设计者实现的机制效率更高。
演化的语言
- 用少量的数据结构搭配大量的操作。