计算机科学

首页 > 计算机科学

函数编程语言

2018-08-31 09:10:17     所属分类:编程典范

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

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

目录

  • 1 典型的函数式编程语言
    • 1.1 纯函数式编程语言
    • 1.2 非纯函数式编程语言
    • 1.3 其他函数式编程语言
  • 2 历史
  • 3 速度和空间上的顾虑
  • 4 参考文献
  • 5 外部链接

典型的函数式编程语言

纯函数式编程语言

  • 强静态类型
    • Concurrent Clean
    • Haskell
    • Miranda
  • 弱类型
    • Lazy K

非纯函数式编程语言

  • 强静态类型
    • F#
    • ML
    • OCaml
    • Scala
  • 强动态类型
    • Erlang
    • LISP
    • LOGO
    • Scheme
    • Clojure
    • Mathematica
    • R
  • 弱类型
    • Unlambda

其他函数式编程语言

  • APL
  • XSLT

历史

函数式编程中最古老的例子莫过于1958年被创造出来的lisp了。函数式编程更加现代一些的例子包括scheme、Haskell、Clean、Erlang、clojure、Miranda等。

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

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

速度和空间上的顾虑

函数式编程常被认为严重耗费CPU和存储器资源[来源请求]。主因有二:

  • 在实现早期的函数式编程语言时并没有考虑过效率问题。
  • 面向函数式编程特性(如保证函数参数不变性等)的独特数据结构和算法。

参考文献

外部链接

  • Why Functional Programming Matters

上一篇:串流处理
相关推荐