函数式程序设计是一种以表达式求值为计算基础的编程范式,它的特点是使用高阶函数、引用透明和延迟求值,它的优点是程序易于阅读,它们非常可靠,并且可以分解成组件。缺点是计算速度可能很慢,并且其风格和语法与其他常见的编...
函数式程序设计是一种以表达式求值为计算基础的编程范式,它的特点是使用高阶函数、引用透明和延迟求值,它的优点是程序易于阅读,它们非常可靠,并且可以分解成组件。缺点是计算速度可能很慢,并且其风格和语法与其他常见的编程风格完全不同。函数式编程风格更多地被学术界所接受,而不是计算机科学专业人士。函数式编程是由清晰的输入和输出。顾名思义,函数是这种编程范式的基本部分。函数可以嵌套在其他函数中,称为高阶函数,每个高阶函数都可以分解成易于理解和调试的积木函数,一些高阶函数的例子是Map和Nest,函数映射取函数F和变量列表,例如(x,y,z),并给出一个列表中的结果:Map[F,(x,y,z)]=(F(x,y,z))=(F(x),F(y),F(z))。Nest接受函数F、变量x和迭代次数:Nest[F,x,3]=F(F(F(x)))。纯函数编程接受输入并返回输出,而不改变变量的状态。换句话说,不管程序中以前发生了什么,具有相同输入的函数总是会给出相同的结果。这称为引用透明。由于数学函数是引用透明的,函数编程对许多数学家、工程师和科学家来说都是直观的函数意味着函数求值的顺序并不重要,因此在需要函数结果之前不需要对函数进行求值,这称为延迟求值这与命令式编程完全不同,命令式程序从第一个命令开始,一直运行到最后一个命令。惰性计算跳过程序中不符合逻辑或多余的部分,它能自动优化程序并减少计算时间。函数式程序设计比其他编程模式有许多优点。输入和输出清晰的函数易于阅读和理解。一旦一个函数被彻底调试,它就可以可靠地用于其他应用程序。多核计算机可以计算并行独立计算的函数,极大地提高了程序的性能。不幸的是,并不是所有的程序都适合并行计算,而且计算函数程序可能相当慢。函数程序严重依赖递归,这通常比使用传统的循环或迭代方法效率低。事实上,函数式编程可能很笨拙,也很难学习,因为它不像其他更常见的范例,如面向对象编程。学者们倾向于青睐函数式编程,因为它提供了一种清晰易懂的方法来编程复杂的现实世界问题。一些纯语言是Haskell和ErlangMathematica专攻符号数学,R专攻统计学,J专攻金融分析,多半径语言如Scala和F#既支持函数式编程,也支持其他编程风格
-
发表于 2020-08-07 01:39
- 阅读 ( 863 )
- 分类:电脑网络