函数式编程 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();
}
原文地址:https://www.cnblogs.com/kunpeng012/p/functional.html
时间: 2024-07-29 10:30:36