oop - 函数式编程语言和命令式编程语言有什么区别?

标签 oop functional-programming

大多数主流语言,包括面向对象编程 (OOP) 语言,例如 C#、Visual Basic、C++ 和 Java,其设计目的主要是支持命令式(过程式)编程,而类似 Haskell/gofer 的语言则纯粹是函数式的。谁能详细说明这两种编程方式有什么区别?

我知道选择编程方式取决于用户需求,但为什么建议学习函数式编程语言?

最佳答案

区别如下:

命令:

  • 开始
  • 打开您的 9 1/2 码鞋子。
  • 在口袋里腾出空间来存放一排[7] key 。
  • 把 key 放在房间里, key 放在口袋里。
  • 进入车库。
  • 开放式车库。
  • 进入汽车。

...等等...

  • 将牛奶放入冰箱。
  • 停下来。

声明性,其中功能性是一个子类别:

  • 牛奶是一种健康饮料,除非您消化乳糖有问题。
  • 通常,人们将牛奶存放在冰箱中。
  • 冰箱是一个可以让里面的东西保持凉爽的盒子。
  • 商店是销售商品的地方。
  • “出售”是指用元素换取金钱。
  • 此外,用金钱交换元素称为“购买”。

...等等...

  • 确保冰箱里有牛奶(当我们需要时 - 用于懒惰的函数式语言)。

摘要:在命令式语言中,您告诉计算机如何更改内存中的位、字节和单词以及更改顺序。在函数式中,我们告诉计算机什么是事物、 Action 等。例如,我们说 0 的阶乘是 1,而其他每个自然数的阶乘都是该数与其前一个数的阶乘的乘积。我们不会说:要计算 n 的阶乘,保留一个内存区域并将 1 存储在那里,然后将该内存区域中的数字与数字 2 到 n 相乘,并将结果存储在同一位置,最后,内存区域将包含阶乘。

关于oop - 函数式编程语言和命令式编程语言有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17826380/

相关文章:

user-interface - FRP在顶层应该如何工作?

php - 在 PHP 的 OOP 编程中设置我的类的正确方法是什么?

php - 多个数据库连接 PHP

python - 如何在python中使用回调函数?

oop - OOP 接口(interface)和 FP 类型类的区别

functional-programming - 当中间的 promise 中的 promise 检查授权时,如何管道功能?

javascript - 按值对相邻数组项进行分组的最佳方法

python - 如何使用 duck typing 编写 OOP 一致的代码?

JavaScript 对象继承

c++ - 在多文件项目中调用基类构造函数