函数式编程语言的入门级了解

          函数式编程functional programming)又称函数程序设计泛函编程,是一种编程范式,它将计算机运算视为函数运算,并且避免使用程序状态以及易变对象。其中,λ演算(lambda calculus)为该语言最重要的基础。而且,λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。比起指令式编程,函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。

        其主要分为三类:纯函数式编程语言,非纯函数式编程语言,其他函数式编程语言

        纯函数式编程语言:

        非纯函数式编程语言:

        其他函数式编程语言:

 函数式编程的历史:       

         函数式编程中最古老的例子莫过于1958年被创造出来的Lisp了。函数式编程更加现代一些的例子包括CleanClojureErlangHaskellMirandaScheme等。

虽然λ演算并非设计来于计算机上运行,但它可以被视作第一个函数式编程语言。1980年代末期,集函数式编程研究成果于大成的Haskell发布。

基于JavaScript的某些开发理念强调函数式的实现方法。

为什么函数式编程越来越受关注:

割让控制权

函数式编程语言使我们能够用高层次的抽象取代其他核心构建块,并更注重结果而不是步骤。

结果比步骤更重要

函数式编程的特点之一是存在强大的抽象,它隐藏了许多日常操作的细节(比如迭代)

 
 

函数式语言在更细化的级别提供重用,在列表和映射等基本数据结构之上通过高阶函数提供定制,从而实现重用。

少量数据结构,大量操作

在面向对象的命令式编程语言中,重用的单元是类以及与这些类进行通信的消息,这些信息是在类图中捕获的。该领域的开创性著作是 Design Patterns: Elements of Reusable Object-Oriented Software,至少为每个模式提供一个类图。在 OOP 的世界中,鼓励开发人员创建独特的数据结构,以方法的形式附加特定的操作。函数式编程语言尝试采用不同的方式来实现重用。它们更喜欢一些关键的数据结构(如列表、集和映射),并且在这些数据结构上采用高度优化的操作。传递数据结构和高阶函数,以便 “插入” 这种机制,针对某一特定用途对其进行定制。

   

与语言的趋势相一致

函数式编程的目标之一是最大程度地减少可变状态。

        

猜你喜欢

转载自www.cnblogs.com/zhuguohui/p/10435445.html
今日推荐