首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >函数式编程语言和命令式编程语言有什么不同?

函数式编程语言和命令式编程语言有什么不同?
EN

Stack Overflow用户
提问于 2013-07-24 14:07:00
回答 2查看 157.8K关注 0票数 185

大多数主流语言,包括面向对象编程(OOP)语言,如C#、Visual Basic、C++和Java,都被设计为主要支持命令式(过程化)编程,而Haskell/gofer之类的语言则是纯粹的函数式编程。有人能详细说明一下这两种编程方式的区别吗?

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

EN

回答 2

Stack Overflow用户

发布于 2017-04-26 19:45:25

函数式编程是“使用函数进行编程”,其中函数具有一些预期的数学属性,包括引用透明性。从这些属性中,进一步的属性流动,特别是通过可替换性实现的熟悉的推理步骤,从而导致数学证明(即证明对结果的置信度)。

由此可见,函数式程序只是一个表达式。

通过注意命令式程序中表达式在引用上不再透明的地方(因此不是使用函数和值构建的,并且本身不能是函数的一部分),您可以很容易地看到这两种风格之间的对比。两个最明显的地方是:突变(例如变量)、其他副作用、非局部控制流(例如异常)

在这个由函数和值组成的程序即表达式的框架上,建立了一个完整的实用范式,包括语言、概念、“函数模式”、组合器以及各种类型系统和评估算法。

根据最极端的定义,几乎任何语言-甚至C或Java-都可以称为函数式语言,但通常人们将该术语保留为具有特定相关抽象(如闭包、不可变值和模式匹配等语法辅助)的语言。就函数式编程的使用而言,它涉及到函数式的使用,并在没有任何副作用的情况下构建代码。用来写校样

票数 6
EN

Stack Overflow用户

发布于 2018-05-03 15:33:50

我知道这个问题由来已久,其他人已经很好地解释了它,我想举一个简单的例子来解释同样的问题。

问题:写入1的表。

解决方案:-

按命令式风格:=>

代码语言:javascript
复制
    1*1=1
    1*2=2
    1*3=3
    .
    .
    .
    1*n=n 

按函数样式:=>

代码语言:javascript
复制
    1
    2
    3
    .
    .
    .
    n

解释在命令式风格中,我们编写的指令更加明确,并且可以以更简单的方式调用。

在函数式风格中,那些不言自明的东西将被忽略。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17826380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档