什么是函数式语言

函数式语言(functional language)一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言。函数式语言主要成分是原始函数、定义函数和函数型。这种语言具有较强的组织数据结构的能力,可以把某一数据结构(如数组)作为单一值处理;可以把函数作为参数,其结果也可为函数。

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

由于计算机技术的不断发展,函数式编程语言逐渐得到人们的重视。我们现在使用的大多数编程语言大都是以冯诺伊曼式的计算机为设计背景,所以我们称这些计算机编程语言为诺伊曼式语言。1977年,John Backus提出了函数式编程语言,这种语言以非冯诺伊曼式的计算机为设计而背景,所以我们又称这样的函数式编程语言称为非冯诺伊曼式语言。函数式编程,又称泛函编程,是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免状态以及可变数据。函数编程语言最重要的基础是λ演算。而且λ演算的函数可以接受函数当作输入(引数)和输出(传出值)。和命令式编程相比,函数式编程强调函数的计算比指令的运行重要。和程序编程相比,函数式编程裹,函数的计算可随时调用。

Haskell是一种于1980年代末期所发布的函数式编程语言,Haskell函数式编程语言是在Miranda的基础上得到了,它对Miranda进行了标准化,所以这种语言集合了其他相关函数式编程开发的原理,它无需花费太多的赘述就能完成一些数据结构,比如链表和矩阵,是当前最广泛地被用于研究的一种函数式编程语言。它的语言衍生物有很多,有扩充Haskell、并行Haskell和面向对象的变体如Mondrian等。与此同时,它还被用作为在新语言设计时的标准模板。

另一种函数式编程语言是Clean,它和Haskell有很多一样的地方。目前这门语言是用C写成的,由尼兹梅根大学负责维护。

还有一种函数式编程语言是Meta Language, MetaLanguage是由爱丁堡大学与上个世纪七十年代末所开发的,它被归类为非纯函数式编程语言,它之所以有这样的归类是因为它允许了副作用和指令式编程的使用。 目前,函数式编程语言还有F#,这是一款针对.NET平台的开放研究的语言。

延伸阅读:

函数式语言的使用意义

文章标题:什么是函数式语言,发布者:小编,转载请注明出处:https://worktile.com/kb/p/39213

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月22日
下一篇 2023年2月22日

相关推荐

  • 建设项目管理公司是做什么的

    建设项目管理公司专注于为不同类型的建设项目提供专业管理服务,这包括项目的规划、设计、合同管理、施工监理、成本控制、项目进度监控、风险管理、工程质量保障,并可能涉及到建设项目竣工后的运营维护。作为重要组成部分之一,这些公司将工程质量保障治理作为核心职能,确保建设项目按照规定标准和客户需求竣工。 一、概…

    2024年1月8日
    34600
  • Scrum团队如何应对紧张的项目时限

    Scrum团队对于应对紧张的项目时限具有天然优势,因为Scrum框架提供了灵活、快速响应变化的方法论。要有效应对时间压力,关键在于1、优先级排序、2、时间盒定位、3、持续沟通、4、Scrum仪式严格执行、5、团队自我管理能力。通过优先级排序,Scrum团队将最重要的任务置于首位,确保重要功能点的即时…

    2023年12月12日
    26500
  • 云原生环境中的API管理策略

    摘要:在云原生环境中,API管理策略是确保敏捷性、安全性和高效运营的关键。本文将探讨几个核心观点:1、API网关的作用;2、服务网格的应用;3、认证与授权机制;4、API版本控制;5、流量管理和监控;6、API文档和开发者门户。云原生架构的API管理不仅提供了服务的发现和路由,还负责安全、降低耦合、…

    2023年11月23日
    24700
  • 深度学习中,自监督和无监督有什么区别

    CPU和GPU跑深度学习的区别有:1、架构不同;2、并行计算能力不同;3、功耗和效率不同;4、适用场景不同;5、价格和易得性不同;6、开发环境不同。其中,架构不同指的是CPU主要为串行处理优化,而GPU则针对并行处理进行优化。 1、架构不同 CPU:主要为串行处理优化。CPU被设计用来执行复杂的逻辑…

    2023年7月23日
    40200
  • vscode为什么保存不了文件

    权限不足、磁盘空间不足、文件路径问题、扩展冲突,可能是VSCode无法保存文件的常见原因。在这些原因中,权限不足是最常见的问题,特别是当你尝试保存在一个需要特定权限的目录中的文件时。通常,对于系统级的目录或受限的文件夹,操作系统会限制写入权限以避免安全问题。在这种情况下,保存文件前,确保你登录的用户…

    2024年4月3日
    26100
  • oa怎么加签

    OA加签是在办公自动化系统中,向流程中增添需要额外审批或知会的人员的操作。具体方式有:1、流程中新增审批节点; 2、事中或事后加签; 3、跨部门协作加签。流程中新增审批节点通常是在设定流程时加入,以保证流程的完整性和相关人员的参与。 OA加签操作通常涉及以下步骤:用户需要在系统中找到对应流程、选择加…

    2024年1月16日
    42800
  • DevOps实践中的持续学习重要性

    在DevOps实践中,持续学习的重要性不容忽视。它确保团队成员掌握最新技术、提升工作效率、创新能力和问题解决技能。1、提升个人及团队技术能力;2、保持与业界技术同步;3、促进团队内部协作;4、适应快速变化的市场需求;5、提高组织的竞争优势。持续学习体现在对新工具的快速采纳、对工作流程的不断优化、团队…

    2023年12月13日
    28500
  • 计算机daemon和通过死循环构造的进程的区别是什么

    计算机daemon和通过死循环构造的进程的区别为:1、定义不同;2、功能不同。定义不同是指计算机daemon是一种后台服务程序,而通过死循环构造的进程则只是一种简单的编程技巧。 一、计算机daemon和通过死循环构造的进程的区别是什么 1、定义不同 计算机daemon是一种后台服务程序,而通过死循环…

    2023年3月30日
    44100
  • 基建项目管理办法有哪些

    基建项目在投资控制、工期管理、质量保证以及安全监管方面采取了1、前期详细规划、2、制定严格的项目管理计划、3、实行项目全过程监控、4、采用现代信息技术辅助等多项管理办法。制定严格的项目管理计划是确保目标达成的核心手段,这涉及预算编制、资源分配、风险评估以及进度排期等关键方面。确立明确的规划数据和目标…

    2024年1月8日
    30800
  • 如何简单管理复杂项目

    管理复杂项目并非易事,但通过采用一些简单而有效的策略,可以显著提升项目管理的效率。这些策略包括分解项目任务、设定明确的里程碑、采用敏捷方法论、利用项目管理软件、建立强大的团队沟通等。在这些策略中,分解项目任务是有效管理复杂项目的首要步骤,它能够帮助项目经理把握项目全局,确保每一步都计划得当。 通过将…

    2024年4月10日
    5400

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部