zoukankan      html  css  js  c++  java
  • 对函数式编程语言的理解

    1.什么是函数式语言?

    函数式编程语言历史:

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

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

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

    百度百科的定义:

    函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言。函数式语言主要成分是原始函数、定义函数和函数型。这种语言具有较强的组织数据结构的能力,可以把某一数据结构(如数组)作为单一值处理;函数式编程语言最大的特点就是函数可以作为参数、结果也可以是函数,这种定义的函数称为高阶函数,程序就是函数,程序作用在结构型数据上,产生结构型结果,从根本上改变了冯·诺伊曼式语言的“逐词”工作方式。

    维基百科的定义:

    函数式编程英语:functional programming)或称函数程序设计泛函编程,是一种编程范式,它将计算机运算视为函数运算,并且避免使用程序状态以及易变对象。其中,λ演算(lambda calculus)为该语言最重要的基础。而且,λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。

    比起指令式编程,函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。

    2.函数式语言有那些?

    (1)纯函数式编程语言

    其中Bloomberg 和谷歌、Facebook就是用 Haskell 函数式编程语言进行垃圾过滤。

    3.函数式编程语言为什么会流行起来?

    在函数式编程中,由于数据全部都是不可变的,所以没有并发编程的问题,是多线程安全的。可以有效降低程序运行中所产生的副作用,对于快速迭代的项目来说,函数式编程可以实现函数与函数之间的热切换而不用担心数据的问题,因为它是以函数作为最小单位的,只要函数与函数之间的关系正确即可保证结果的正确性。

    原因一:函数式编程语言的表达方式更加符合我们日常生活中的语法、代码的可读性更强,实现同样的功能函数式编程相比较于面向对象编程所需要的代码更加少、代码更加简洁清晰。

    原因二:由于函数式编程语言更加简洁的特点从而广泛应用于科学研究中,科研项目对代码的工程化要求低,开发速度快从而函数式编程语言更加高效。

    函数式编程语言的缺点:

    由于函数式编程语言的数据都是不可变的所以所有的变量在程序运行期间都一直存在,从而非常占用计算机的运行资源,此外函数式编程对于程序开发人员的要求很高,如果开发人员对函数式编程理解不够深刻那么开发出的程序就会出现很大的问题。

  • 相关阅读:
    Java使用printf格式化日期
    Java时间Date类
    Java数组
    Spring Cloud Stream
    Spring Cloud Bus
    Spring Cloud Config
    api服务网关?
    SPRINGBOOT集成SWAGGER2
    MySQL锁(一)全局锁:如何做全库的逻辑备份?
    Spring的FactoryBean
  • 原文地址:https://www.cnblogs.com/yuanchao-blog/p/10439990.html
Copyright © 2011-2022 走看看