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


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

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

            纯函数式编程语言:

            非纯函数式编程语言:

            其他函数式编程语言:

     函数式编程的历史:       

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

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

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

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

    割让控制权

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

    结果比步骤更重要

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

     
     

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

    少量数据结构,大量操作

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

       

    与语言的趋势相一致

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

            

  • 相关阅读:
    PHP 日期的时区差异
    c++与c输出输入语句时空区别
    数据库中完整性约束的SQL定义几点小解
    字符的一字节8位问题
    C#抽象类
    SQL server 中SUBSTRING()以及CONVERT()的用法
    关于CS模式下,控制一个容器内控件的值问题
    新的公司新的感受
    小生谈字符串的截取函数SubString()仅限csharp语言
    LINQ中怎么使用NEWID()之自我学习与理解
  • 原文地址:https://www.cnblogs.com/zhuguohui/p/10435445.html
Copyright © 2020-2023  润新知