精华内容
下载资源
问答
  • 声明式和命令式

    2019-06-21 16:22:17
    声明式和命令式 (Declarative vs Imperative)  声明式和命令式是两种编程范式。react是声明式的,jquery那样直接操作dom是命令式 Alright here’s a metaphor. Declarative Programming is like asking your ...

     1 . 声明和命令式 (Declarative vs Imperative

      声明和命令式是两种编程范式。react是声明式的,jquery那样直接操作dom是命令式

    Alright here’s a metaphor.

    Declarative Programming is like asking your friend to draw a landscape. You don’t care how they draw it, that’s up to them.

    Imperative Programming is like your friend listening to Bob Ross tell them how to paint a landscape. While good ole Bob Ross isn’t exactly commanding, he is giving them step by step directions to get the desired result.

          声明式就像你告诉你朋友画一幅画,你不用去管他怎么画的细节

      命令式就像按照你的命令,你朋友一步步把画画出来

         换言之

    • 命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。
    • 声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。

     2 . 来点代码

         点击一个按钮,改变颜色

      命令式:

    const container = document.getElementById(‘container’);
    const btn = document.createElement(‘button’);
    btn.className = ‘btn red’;
    btn.onclick = function(event) {
     if (this.classList.contains(‘red’)) {
       this.classList.remove(‘red’);
       this.classList.add(‘blue’);
     } else {
       this.classList.remove(‘blue’);
       this.classList.add(‘red’);
     }
    };
    container.appendChild(btn);

     

       声明式(react):

     

    class Button extends React.Component{
      this.state = { color: 'red' }
      handleChange = () => {
        const color = this.state.color === 'red' ? 'blue' : 'red';
        this.setState({ color });
      }
      render() {
        return (<div>
          <button 
             className=`btn ${this.state.color}`
             onClick={this.handleChange}>
          </button>
        </div>);
      }
    }

     

     

       注意到什么不一样了么?

       react没有去修改dom,只是声明了页面应该是什么样子(根据不同的state).

       放到整个应用层面也是一样的道理,我们更加需要关心的是整个应用和页面的框架结构。

     

     

      参考链接:https://codeburst.io/declarative-vs-imperative-programming-a8a7c93d9ad2

    展开全文
  • 目录声明式编程 vs 命令式编程为什么面向对象属于命令式编程了解下函数式编程参考 React:以声明式编写 UI,可以让你的代码更加可靠,且方便调试。 Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据...

    React:以声明式编写 UI,可以让你的代码更加可靠,且方便调试。

    Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统。

    声明式?命令式?面向对象?函数式?

    声明式编程 vs 命令式编程

    命令式编程:通过一系列改变程序状态的指令完成计算,模拟计算机的运行过程,告诉计算机怎么做
    声明式编程:利用数理逻辑或既定规范对已知条件进行推理运算,更看重结果而非过程,给计算机描述我们想要什么

    声明式编程的思考层面要高于命令式编程,声明式语言往往通过命令式语言做底层实现。

    属于命令式编程的有:汇编、C、面向过程编程、面向对象编程。
    属于声明式编程的有:正则表达式、SQL、HTML、CSS、函数式编程。

    为什么面向对象属于命令式编程

    无论是面向过程还是面向对象,两种编程方式都要对程序进行模块化,都需要调用过程或者方法来改变程序的数据,所以在某种程度上,它们的本质是一样的,这也是为什么它们都同属于命令式语言的原因。

    只不过从形式上,面向对象编程语言具有更高的抽象能力,程序员可以更容易的实现一些常用的设计模式,比如封装、继承、多态等等。

    了解下函数式编程

    函数式编程将运算看作是数学中函数的计算。

    程序中的函数更多的是一种“功能”角色,如果想让程序中的函数模拟数学函数,就要做一些限制:

    • 如果函数的输入参数相同,则输出也相同;
    • 函数执行过程不依赖外部因素,只能依赖于其输入参数;
    • 不产生任何副作用;

    这样的函数就是纯函数。纯函数是程序代码模拟数学函数的基础。

    纯函数保证了,函数执行过程中不依赖外界因素,也不影响外部环境。换句话说,在函数式编程中,状态和变量不再是程序员需要关注的问题。在程序的执行过程中,状态是存在的,而且随着函数的执行进度不断变化。但状态的变化过程不再与计算的顺序有关,而仅与输入有关。函数和输入参数就决定了程序执行过程中所处的状态。

    参考

    1. https://zhuanlan.zhihu.com/p/28341870
    2. https://www.zhihu.com/question/27468564/answer/232900335
    展开全文
  • 命令式编程:面向cpu编程、面向算法编程; 声明式编程:面向解释器编程、面向结构编程。 在编程范式上,我们需要理解编程语言的两个分类——命令式编程和声明式编程——的设计思想。其中,非命令式的编程都可归...

    命令式编程:面向cpu编程、面向算法编程;

    声明式编程:面向解释器编程、面向结构编程。

     

    在编程范式上,我们需要理解编程语言的两个分类——命令式编程和声明式编程——的设计思想。其中,非命令式的编程都可归为声明式编程,命令式、函数式和逻辑式是最核心的三种范式。可以用下图来表示。

    命令式和声明式编程

    命令式编程和声明式编程起源的不同决定了这两大类范式代表着迥然不同的编程理念和风格:命令式编程是行动导向( Action-Oriented )的,因而算法是显性而目标是隐性的;声明式编程是目标驱动( Goal-Driven )的,因而目标是显性而算法是隐性的。以阶乘函数来示例,命令式、函数式和逻辑式的不同表现如下。

     

    https://gitbook.cn/books/596760dc118fa209584fd395/index.html

    转载于:https://www.cnblogs.com/feng9exe/p/10065447.html

    展开全文
  • 声明式与命令式设计

    2019-11-03 13:06:54
    学习react的时候,对react的介绍有一句是声明式设计,当时不太了解,就查了查资料,了解了声明式设计与命令式设计。 命令式设计 命令式编程描述代码如何工作,告诉计算机一步步地执行、先做什么后做什么,在执行完...

    学习react的时候,对react的介绍有一句是声明式设计,当时不太了解,就查了查资料,了解了声明式设计与命令式设计。

    命令式设计

    命令式编程描述代码如何工作,告诉计算机一步步地执行、先做什么后做什么,在执行完之前,计算机并不知道我要做什么,为什么这么做.它只是一步一步地执行了。
    例如:

    var array = [0,1,2,3,4];
    var newArray = [];
    for(var i = 0; i < array.length; i++) {
      var newNumber = array[i] + 1;
      newArray.push(newNumber);
    }
    console.log(newArray); //=> [1,2,3,4,5]
    

    声明式设计

    声明式编程表明想要实现什么目的,应该做什么,但是不指定具体怎么做。

    var array = [0,1,2,3,4];
    var newArray = array.map(function(n) {
      return n + 1;
    })
    console.log(array) //=> [1,2,3,4,5]
    

    很多时候,这两个要统一使用。一个用来封装函数,一个拿来调用。

    展开全文
  • 声明式和命令式是两种编程方式,Vue/React都是声明式的,JQuery是命令式的。 声明式编程:告诉“机器”你想要的是什么,让机器去想如何做这件事。就像你告诉你朋友画一幅画,你不用管他是怎么画出来的。 命令式...
  • 命令式和声明式编程的区别 声明式和命令式是两种编程范式。react是声明式的,jquery那样直接操作dom是命令式. 一般来说,声明式编程关注于发生了啥,而命令式则同时关注于咋发生的。 ...
  • 手把手介绍函数式编程:从命令式重构到函数式 序 本文是一篇手把手的函数式编程极简入门介绍,借助代码示例讲解细腻。但又不乏洞见,第一节中列举和点评了函数式种种让眼花缭乱的特质,给出了“理解函数式特质的指南...
  • 声明式和命令式 声明式:告诉“机器”,你想要什么,不需要关心中间实现过程,我们只需要开始和结果 命令式:如果你想要什么,你要告诉“机器”,并且还要告诉“机器”,怎么做,开始、过程、结果都要有 下面,...
  • 声明式和命令式编程

    千次阅读 2018-06-29 09:50:09
    Aspect Oriented Programming...Declarative Programming(声明式编程)是和Imperative Programming(命令式编程)相对的概念。我们平时使用的编程语言,比如C++、Java、Ruby、Python等,都属于Imperative Programm...
  • 命令式编程与函数式编程

    千次阅读 2017-11-09 23:05:26
    命令式编程命令式编程(英语:Imperative programming),是一种描述电脑所需作出的行为的编程典范。几乎所有电脑的硬件工作都是指令式的;几乎所有电脑的硬件都是设计来运行机器码,使用指令式的风格来写的。较高级...
  • 命令式和符号式编程

    2020-03-14 13:44:31
    命令式程序举例: def add(a, b): return a + b def fancy_func(a, b, c, d): e = add(a, b) f = add(c, d) g = add(e, f) return g fancy_func(1, 2, 3, 4) 输出: 在运行语句e = add(a, b)时,Python会做...
  • 命令式编程: def 定义函数 if else 条件判断 for 循环 包、模块;类、对象也是重要部分,但不是必须 函数式编程: 最基本的三个函数 map / reduce / filter lambda表达式 -- 在函数式编程里被称为算子 lambda ...
  • 函数式编程关心数据的映射,命令式编程关心解决问题的步骤 命令式编程——你要做什么事情,你得把达到目的的步骤详细的描述出来,然后交给机器去运行 函数式编程——构造初始量,在程序的运行中,新量是就旧量的...
  • 先统一一下概念,我们有两种编程方式:命令式和声明式。我们可以像下面这样定义它们之间的不同:命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。声明式编程:...
  • 编程语言根据编程范式可以分为命令式编程语言和函数式编程语言 函数式编程和命令式编程同样具有非常久远的历史 命令式编程语言是完全根植于冯诺依曼体系结构的 为什么沉寂了多年的函数式编程,在近几年...
  • mxnet 符号式与命令式

    2018-06-27 17:40:38
    命令式:Numpy, Matlab, Torch,优点在于 Straight-forward. Easy to view the middle level resultsimport mxnet.ndarray as nd a = nd.ones((4,4)) b = nd.ones((4,4)) c = a + b print(c.asnumpy())符号式: ...
  • 命令式编程vs声明式编程

    千次阅读 2016-07-13 15:08:32
     先统一一下概念,我们有两种编程方式:命令式和声明式。  我们可以像下面这样定义它们之间的不同: 命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。 声明...
  • 命令式、声明式和函数式三种编程范式都各有特色。 命令式编程关注的是具体步骤。 声明式编程关注的是最后的结果。 函数式编程在声明式编程基础上更进一步,将函数作为第一公民。 命令式编程 在平时常见的编程范式...
  • 命令式和声明式开发的区别

    千次阅读 2018-07-13 19:23:49
    命令式开发:是关注计算机的执行步骤,告诉计算机一步一步怎么做然后计算机再一步步做声明式开发:是告诉计算机做什么,但不告诉计算机怎么命令式: js操作dom就是命令式,需要告诉计算机一步一步的怎么做 var dom...
  • 这篇文章主要介绍了JavaScript函数式编程(Functional Programming)声明式与命令式,结合实例形式分析了JS声明式与命令式相关概念、原理、定义及使用方法,需要的朋友可以参考下 本文实例讲述了JavaScript函数式编程...
  • 本来自以为已经了解了函数式编程,但当看到这篇文章时,才发现自己之前的见解有多么肤浅,因此决定重新整理有关声明式编程、命令式编程以及函数式编程相关的概念、以及知识点,方便未来某一时刻快速回忆以及使用。...
  • 在模型转换语言的学习过程中,在文献中总能看到声明式编程语言( declarative language)与命令式( imperative language)编程语言。查阅了资料之后,在这里总结一下自己的理解。 首先一个总体的理解是:声明式编程强调...
  • -- 命令式编程,函数式编程,逻辑式编程;而面向对象编程是一种命令式编程。  命令式编程是面向计算机硬件的抽象,有变量、赋值语句、赋值语句、表达式和控制语句。  函数式编程是面向数学的抽象,将计算描述为...
  •  事实上,除命令式以外的范式统称为声明式。下面有一张图划分。 声明式与命令式编程理念和风格  命令式编程是行动导向(Action-Oriented)的,因而算法是显性而目标是隐性的;  声明式编程是目标...
  • 声明式编程和命令式编程

    千次阅读 2017-11-17 17:10:35
    ) 命令式编程 命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。 var numbers = [1,2,3,4,5] var doubled = [] for(var i = 0; i  varnewNumber =numbers[i] * 2 ...
  • 命令式编程的计算在编译时构建完成; 声明式编程的计算在运行时构建完成;   这里所谓的构建为关键节点的组合。   例如函数式编程,最底层或最基本的运算单元还是命令式编程。...
  • 命令式编程,函数响应式编程 有相关的分组问题, 例如一整类: 给定一个人的集合,返回一个成对的列表,其中第一个值是年龄,第二个值是那个年龄的人的集合 给定一个订单集合,返回一个具有某个价格范围( 例如 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,143
精华内容 12,457
关键字:

命令式