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

函数式编程经常使用递归。纯函数式的程序没有变量和副作用(Side effect)。因为纯函数式程序设计语言没有变量,函数没有副作用,编写出的程序可以利用记忆化、公共子表达式消除和并发计算在运行时和编译时得到大量优化。我们常见的编程语言有数十种之多。编程语言种类有很多,按照程序设计的方法,可分为以下几种程序语言:
(1)结构化编程语言,比如C语言等。
(2)函数式编程语言,比如OCaml, Lisp等。
(3)逻辑式编程语言,比如Prolog等。
(4)面向对象程序语言,比如Java等。
函数式语言(functional language)流行的原因有如下:
(1)函数式编程语言的代码十分简单,加快了开发的速度。并且由于在使用函数式编程语言时,程序员会大量使用到函数,从而减少了重复的代码,因而程序比较短。
(2)函数式编程语言更加接近我们使用的自然语言,程序员在学习和使用它的时候更加快捷容易。函数式编程语言的自由度很高,十分接近自然语言写出的代码。
(3)函数式编程语言的代码管理更加方便。函数式编程不会对外部产生依赖,也不会修改外界的状态。程序员只需把指定的参数给函数,相同的参数其返回的结果必定是相同的。
(4)函数式编程语言还支持并发编程,这就使得程序员在进行函数式编程时完全不用考虑死锁的问题,因为它根本就不修改变量,所以就不存在锁线程的问题。
(5)函数式编程语言的代码支持代码热升级(注释:热更新即代码热升级就是动态下发代码,它可以使开发者在不发布新版本的情况下,修复 BUG 和发布功能,让开发者得以绕开软件宿主主机的审核机制,避免长时间的审核等待以及多次被拒造成的成本。)。

转载于:https://www.cnblogs.com/jjhq/p/10439953.html

函数式语言(functional language)的相关了解相关推荐

  1. 函数式语言(function language)

    function language 一.函数式语言(function language) 函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数 ...

  2. Functional Language

    1.What is functional language? 函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定 ...

  3. 语言(Language)和语法(Syntax)简述

    语言Language和语法Syntax简述 一字母表和字符串 二语法和语言 1几个基本概念 a语法Grammer b推导Derivation c归纳Reduction d语法规则的递归定义Recurs ...

  4. c语言编写fun函数使其实现,函数式语言Corefun的设计与实现(全文完整版)

    <函数式语言Corefun的设计与实现.ppt>由会员分享,可免费在线阅读全文,更多与<函数式语言Corefun的设计与实现>相关文档资源请在帮帮文库(www.woc88.co ...

  5. Lisp 家族迎来新成员,函数式语言 Lux 是什么?

    代码世界即将加入一门新成员:Lux.你没看错,它不是洗发水,而是古老的 Lisp 家族中新诞生的函数式语言. 目前 Lux 还在研发之中,最新版本是 0.5.0.它可被用来编写一系列在 JVM (Ja ...

  6. Algorithm:C+语言实现之数组相关算法(和为定值的两个数、和为定值的m个数、荷兰国旗、长度为2n的洗牌算法、任意长度数组的洗牌算法)

    Algorithm:C+语言实现之数组相关算法(和为定值的两个数.和为定值的m个数.荷兰国旗.长度为2n的洗牌算法.任意长度数组的洗牌算法) 目录 数组 1.寻找和为定值的两个数 2.和为定值的m个数 ...

  7. Algorithm:C++语言实现之队列相关算法(最短路径条数问题、拓扑排序)

    Algorithm:C++语言实现之队列相关算法(最短路径条数问题.拓扑排序) 目录 队列 1.最短路径条数问题 2.拓扑排序 队列 1.最短路径条数问题

  8. Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)

    Algorithm:C++语言实现之链表相关算法(单链公共结点问题.一般LCA.括号匹配.最长括号匹配.逆波兰表达式Reverse Polish Notation.直方图矩形面积.收集雨水问题) 目录 ...

  9. Algorithm:C++语言实现之概率算法相关问题(计算机中的概率事件、C语言中的随机事件、产生二维随机数、圆内均匀取点)

    Algorithm:C++语言实现之概率算法相关问题(计算机中的概率事件.C语言中的随机事件.产生二维随机数.圆内均匀取点) 目录 一.概率 1.计算机中的概率事件 1.1.C语言中的随机事件 1.2 ...

  10. Algorithm:C++语言实现之链表相关算法(链表相加、链表的部分翻转、链表划分、链表去重、重复元素全部删除)

    Algorithm:C++语言实现之链表相关算法(链表相加.链表的部分翻转.链表划分.链表去重.重复元素全部删除) 目录 一.链表 1.1.链表相加 1.2.链表相加 2.1.链表的部分翻转 2.2. ...

最新文章

  1. 「小程序JAVA实战」小程序的页面重定向(60)
  2. iis php json文件,配置iis支持.json格式的文件
  3. 【More Effective C#】Lambda表达式优化
  4. BAP存储属性的思想
  5. WCF从理论到实践(14):WCF解决方案模板 (转)
  6. 普华基础软件笔试_【2019更新版】中国人民大学计算机软件考研信息汇总
  7. ubuntu中wine的安装位置
  8. .Net MVC缓存
  9. html tr行内样式左对齐,探索CSS单行文字居中,多行文字居左的实现方式
  10. 联想电脑G40无法使用 非要睡眠后才能启用wifi
  11. django基于python的平南盛世名城小区疫情防控系统--python-计算机毕业设计
  12. 简单理解 TP、FN、FT 及 TN和准确率、精确率、召回率 的含义
  13. 描边时消除锯齿SetSmoothingMode
  14. TreeMap和LinkedHashMap
  15. 乱七八糟的笔记(%)
  16. 来自#Devoxx 2014的WebSocket螺母和螺栓的幻灯片
  17. 章节十四:Scrapy框架
  18. MSRA实习申请经验分享
  19. 记一次艰难的SQL注入(过安全狗)
  20. Android下雪动画的实现

热门文章

  1. php基础知识点指南思维导图(可下载)
  2. javascript 事件练习:封装兼容性添加、删除事件的函数、addEventListener用法
  3. java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
  4. Ubuntu 12.10方便操作套件
  5. Java与算法之(2) - 快速排序
  6. Luogu4897 【模板】最小割树
  7. scala 高级十六 scala 集合和集合的高级特性 map flatten fllatmap zip reduce zip 等操作...
  8. HDU5926 Mr. Frog’s Game
  9. 计算两个日期的时间间隔,返回的是时间间隔的日期差的绝对值.
  10. LOJ6504 「雅礼集训 2018 Day5」Convex 凸包、莫队