函数式编程 vs 命令式编程
Posted kunpeng012
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数式编程 vs 命令式编程相关的知识,希望对你有一定的参考价值。
函数式编程 vs 命令式编程
函数式编程属于声明式编程(Declarative Programming),SQL就是典型的声明式编程。
函数式编程(Functional Programming)
- 关注行为
- 强调what,对应于数学里面的函数的对应法则。
- 像餐馆里吃饭,提出自己的要求即可
数学函数概念含有三个要素:定义域A、值域C和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。
命令式编程(Imperative Programming)
- 关注数据
- 强调how,每一步都需要去做
- 像在家里吃饭,买菜做饭洗碗亲历亲为
函数式编程有两大要素
- 函数,可以像变量一样进行传递
- 不变性(immutability )
外部变量是不可变的,为并发提供基础。在java lambda中,外部变量是隐式是fina的,lambda可以取代匿名内部类(实现了函数接口(Functional Interface))
//匿名内部类
new Thread(new Runnable() {
@Override
public void run() {}
});
//使用用lambda
new Thread(() -> {});
//接口定义
@FunctionalInterface
public interface Runnable {
public abstract void run();
}
以上是关于函数式编程 vs 命令式编程的主要内容,如果未能解决你的问题,请参考以下文章