函数式编程 vs 命令式编程

函数式编程 vs 命令式编程

函数式编程属于声明式编程(Declarative Programming),SQL就是典型的声明式编程。

函数式编程(Functional Programming)

  1. 关注行为
  2. 强调what,对应于数学里面的函数的对应法则。
  3. 像餐馆里吃饭,提出自己的要求即可

数学函数概念含有三个要素:定义域A、值域C和对应法则f。其中核心是对应法则f,它是函数关系的本质特征。

命令式编程(Imperative Programming)

  1. 关注数据
  2. 强调how,每一步都需要去做
  3. 像在家里吃饭,买菜做饭洗碗亲历亲为

函数式编程有两大要素

  1. 函数,可以像变量一样进行传递
  2. 不变性(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();
  }

posted on 2018-06-07 20:23  kunpeng163163  阅读(216)  评论(0编辑  收藏  举报

导航