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