zoukankan      html  css  js  c++  java
  • 关于函数式编程语言

    一、什么是函数式编程
      函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。 [1] 
    和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。
    和过程化编程相比,函数式编程里函数的计算可随时调用。
    二、.函数式编程语言
    1.Haskell是一种于1980年代末期所发布的函数式编程语言,Haskell函数式编程语言是在Miranda的基础上得到了,它对Miranda进行了标准化,所以这种语言集合了其他相关函数式编程开发的原理,它无需花费太多的赘述就能完成一些数据结构,比如链表和矩阵,是当前最广泛地被用于研究的一种函数式编程语言。它的语言衍生物有很多,有扩充Haskell、并行Haskell和面向对象的变体如Mondrian等。与此同时,它还被用作为在新语言设计时的标准模板。
    2.Clean,它和Haskell有很多一样的地方。目前这门语言是用C写成的,由尼兹梅根大学负责维护。
    3.MetaLanguage是由爱丁堡大学与上个世纪七十年代末所开发的,它被归类为非纯函数式编程语言,它之所以有这样的归类是因为它允许了副作用和指令式编程的使用。
    目前,函数式编程语言还有F#,这是一款针对.NET平台的开放研究的语言。
    三、流行原因

    1. 代码简洁,开发快速

    函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。

    2. 接近自然语言,易于理解

    函数式编程的自由度很高,可以写出很接近自然语言的代码。

    3. 更方便的代码管理

    函数式编程不依赖、也不会改变外界的状态,只要给定输入参数,返回的结果必定相同。因此,每一个函数都可以被看做独立单元,很有利于进行单元测试(unit testing)和除错(debugging),以及模块化组合。

    4. 易于"并发编程"

    函数式编程不需要考虑"死锁"(deadlock),因为它不修改变量,所以根本不存在"锁"线程的问题。不必担心一个线程的数据,被另一个线程修改,所以可以很放心地把工作分摊到多个线程,部署"并发编程"(concurrency)。

    5. 代码的热升级

    函数式编程没有副作用,只要保证接口不变,内部实现是外部无关的。所以,可以在运行状态下直接升级代码,不需要重启,也不需要停机。Erlang语言早就证明了这一点,它是瑞典爱立信公司为了管理电话系统而开发的,电话系统的升级当然是不能停机的。

  • 相关阅读:
    ________________”一切都变了”被遗忘的 label
    ________________java常用快捷键
    Java核心技术 卷1 多线程----执行器(5)
    Java核心技术 卷1 多线程----线程安全的集合(4)
    Java核心技术 卷1 多线程----阻塞队列在线程中的使用(3)
    数据结构与算法之算法的度量方法(1)
    数据结构与算法之算法初体验(1)
    Java核心技术 卷1 多线程----线程的相关用法(2)
    Java核心技术 卷1 多线程----线程的相关概念(1)
    heap&stack 区别
  • 原文地址:https://www.cnblogs.com/oner-xd/p/10438097.html
Copyright © 2011-2022 走看看