大蜕

《函数式编程思维》 读书笔记

函数式程序员喜欢用少数几个核心数据结构,围绕他们去建立一套充分优化的运转机构 而面向对象程序员喜欢不断创建新的数据结构和附属的操作,因为面向对象编程范式就是建立新的类和类间的消息

函数式编程的程序构造更方便我们在比较细小的层面重用代码

转变思维

责权让渡

理解掌握的抽象层次永远要比日常使用的抽象层次更深一层

闭包还是推迟执行原则的绝佳样板。我们把代码绑定到闭包之后,可以推迟到适当的时机再执行闭包 命令式语言围绕状态来建立编程模型,参数传递是其典型特征。 闭包作为一种对行为的建模手段,让我们把代码和上下文同时封装在单一结构也就是闭包本身里面,像传统数据结构一样可以传递到其它位置,然后再恰当的时间和地点完成执行

语言设计者实现出来的机制总比开发者自己做的效率更高,因为他们可以不受语言本身的限制

演化的语言

100个函数操作一种数据结构的组合,要好过10个函数操作10个数据结构的组合

模式与重用

如果我们的语言支持的编程范式以对象为本,我们就很容易不自觉地按照对象的术语来思考所有问题的答案。 不过,大多数现代语言都是多范式的,支持对象、元对象、函数式以及其它多样化的范式。 学会使用不同的范式来处理不同的问题,是开发者进步路上需要约过的一道坎。

《函数式编程思维》豆瓣链接