函数式编程 vs 命令式编程

Posted kunpeng012

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数式编程 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();
  }

以上是关于函数式编程 vs 命令式编程的主要内容,如果未能解决你的问题,请参考以下文章

小丸子函数式编程初探

太阁技术秀再聊函数式编程(Functional Programming)

声明式编程范式VS命令式编程范式

函数式编程

几段小代码解释Python命令式编程和函数式编程

Java函数式编程和lambda表达式