码迷,mamicode.com
首页 > 其他好文 > 详细

函数式编程 vs 命令式编程

时间:2018-06-07 20:48:24      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:声明式编程   法则   核心   runnable   ogr   over   AC   imm   oid   

函数式编程 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 命令式编程

标签:声明式编程   法则   核心   runnable   ogr   over   AC   imm   oid   

原文地址:https://www.cnblogs.com/kunpeng012/p/functional.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!