OOP described
FP described

对比

Functional Programming OOP
使用不可变数据 使用可变数据
遵循声明式编程模型 遵循命令式编程模型
更关心做什么 更关心怎么做
支持平行编程(无副作用,不对其他部分产生影响) 不适合平行编程
无副作用 执行方法会产生严重的副作用
控制流通过函数调用和函数递归调用来实现 控制流通过循环和条件语句来实现
使用递归概念来迭代集合数据 使用循环来迭代集合数据
语句的执行顺序并不重要 语句的执行顺序很重要
支持对数据和行为的抽象 仅支持对数据的抽象