我看到知乎上有个问答:声明式编程和命令式编程的区别
What is the difference between declarative programing language and imperative programming language?
看了所有回答,还是没有搞清楚,到底什么是命令式编程,什么是声明式编程


举报 使用道具
| 回复

共 2 个关于本帖的回复 最后回复于 2019-10-6 23:24

Fuller 管理员 发表于 2019-10-6 23:20:21 | 显示全部楼层
这篇文章做了解释,并且分别举了例子:Imperative vs. Declarative Code... What's the Difference?

命令式编程是我们熟知的,根据这篇文章,面向过程的和面向对象的编程都是命令式的,编程语言包含汇编、c、c++、C#、PHP、Java。聚焦于用语句解决“怎么做”的问题
而声明式编程包括:HTML、XML、CSS、SQL、Prolog、Haskell、LISP,更侧重于逻辑、功能和领域问题的解决。

命令式编程举例:
  1. let str = "Hello World!";
  2. console.log(str);
复制代码
用一行行语句命令计算机做事情

声明式编程举例:一段html代码
  1. <img src="image.jpg" />
复制代码
让浏览器显示一个图片,并不关心怎么做。

但是,我就产生了一个疑问:虽然你在这里不关心怎么做,但是总得做吧,谁做?
举报 使用道具
Fuller 管理员 发表于 2019-10-6 23:24:01 | 显示全部楼层
Fuller 发表于 2019-10-6 23:20
这篇文章做了解释,并且分别举了例子:Imperative vs. Declarative Code... What's the Difference?

命令 ...

我查到知乎上这个回答:https://www.zhihu.com/question/22285830/answer/469177185
意思是:计算机系统是一层一层堆叠起来的,下层接口给上层用。如果把“命令式编程”和“声明式编程”理解成“命令式接口”和“声明式接口”,那么上一楼的疑问就好解释了。
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-3-29 01:46