title: 函数式编程（FunctionalProgramming）相比面向对象编程（Object-orientedProgramming）有哪些优缺点？
desc: 灵感来自问题面向对象程序设计比传统的面向过程程序设计更有什么好处？中 rlei 的回答。<br>问题链接：
topic: 编程
content: 编程说穿了就是两个方面，data和这些data上的operation， oop， 就是让operation 围绕data， 这样的好处是，当你要添加新的data type的时候，好方便 原来写的代码都不用改。但是你要给已经写好的data type添加方法怎么办？ 比如我要你给java自带的string 加个 python那种乘法。functional programming采取的是另一种思路，data更多的围绕operation， 所以添加新的方法很容易。这就是著名的the expression problem. 谁优谁劣，
answerer_tags: 计算语言学，女朋友爱好者