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

    函数式编程语言(functional programming language):

      1、什么是函数式编程语言?

      函数式编程语言(functional programming language)或称函数程序设计,又称泛函编程,是一种编程典范,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。函数编程语言最重要的基础是λ演算(lambda calculus)。

      函数式编程语言的特征:

      (1)以“函数”为首,如同命令式语言中的“变量”,函数可以赋值给其他变量,可以作为其他函数的参数,或者作为其他函数的返回值。

      (2)不修改变量的值

      (3)只有表达式,没有语句。此处的语句指的是没有返回值得某些操作。

      (4)引用透明(Referential transparency),函数的运行不依赖与外部变量或“状态”,简单的说就是,同一个输入(参数),总是会产生同一个输出(返回值),这与数学函数的特征很一致。命令式语言因为全局变量等的存在,就无法做到这一点。

      (5)对比命令式语言,递归形式的循环。

      2、函数式编程语言有哪些?

      纯函数式编程语言:

        强静态类型:Concurrent Clean、Haskkell、Miranda

        弱类型:Lazy K

      非纯函数式编程语言:

        强静态类型:F#、ML、OCaml、Scala

        强动态类型:Erlang、LISP、LOGOScheme、Clojure、Mathematica、R

        强弱型:Unlambda

      其他函数编程语言:

        APL、XSLT

      3、函数式编程语言为什么会流行?

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

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

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

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

      5. 代码的热升级。函数式编程没有副作用,只要保证接口不变,内部实现是外部无关的。所以,可以在运行状态下直接升级代码,不需要重启,也不需要停机。

     
     
  • 相关阅读:
    645. 错误的集合
    88. 合并两个有序数组
    125. 验证回文串
    常用的浏览器
    网页的相关概念
    HTML简介
    商城搜索解决方案
    用VirtualBox安装Centos7
    Eureka自我保护机制
    服务发现Discovery(查看运行的服务)
  • 原文地址:https://www.cnblogs.com/ydc198/p/10443812.html
Copyright © 2011-2022 走看看