什么是 Functional Programming

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

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

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

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

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

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

延伸阅读:

什么是计算机的函数?

计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。

如sin(30)=0.5,这里的30就是函数的参数值,它将由入口传给计算机,供计算机处理,而0.5就是函数值,它将由出口返回给调用这个函数的程序。另外,我们数学里的函数是固定的那些,而计算机中的函数,可以根据其运算功能,由我们自己去定义,只要是运算功能是固定的,我们就可以把它定义成一个函数,这样可以避免相同的程序段在程序中重复出现,在需要它时,只需要调用相应的函数就行了。这样不仅可以使我们编写的程序精简,而且可以使我们的程序更富有可读性。

文章标题:什么是 Functional Programming,发布者:小编,转载请注明出处:https://worktile.com/kb/p/39211

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

相关推荐

  • 资源匮乏如何管理项目经理

    在资源匮乏的情况下,有效管理项目的关键是:严格优化资源利用、创新项目管理方式、加强沟通和协调、实施灵活性策略。项目经理需要应用多种策略确保项目可以在有限资源下成功推进。例如,严格优化资源利用,意味着需要仔细分析项目的所有资源需求,并识别出哪些是真正必要的。通过使用优先级矩阵来确定资源分配,可以确保最…

    2024年4月10日
    6300
  • 为什么devops这么重要

    ### 为何DevOps这样关键 在刹那间深入探讨DevOps的必要性,显著的三大要素便浮现:1、提升软件交付速率、2、增强操作稳定性、3、促进团队协作。尤其在当前快速变化的技术环境中,提升软件交付速率赋予企业快速响应市场变化及用户需求的能力,本质上塑造了企业的竞争优势。详细剖析来看,快速迭代不仅包…

    2024年3月26日
    6200
  • 没钱如何学管理创业项目

    没钱学习管理创业项目不是障碍,而是挑战。关键在于充分利用现有资源、在线课程、书籍、行业网络和实践经验等渠道进行学习。首先,可以通过免费在线平台和MOOCs获取基础知识。其次,可通过阅读业内人士的书籍与文章来深化理解,很多经典的管理和创业相关书籍在图书馆便可以借阅。不仅如此,利用实践经验进行学习是一种…

    2024年4月10日
    6600
  • devops是什么工具

    DevOps作为一种软件开发的实践,追求开发与运维的高度协同、持续集成、快速交付和高质量的自动化。涉及多元化的工具集,用以支撑这一实践理念的实施。1、版本控制中具有代表性的工具是Git,为代码共享、跟踪与协同提供必要环境。2、持续集成(CI)环节关键工具如Jenkins, 实现代码频繁合并到主干。3…

    2024年3月26日
    7100
  • 西安少儿编程学什么

    摘要 在西安,少儿编程学习的内容大致可分为 1、基础编程语言的学习、2、计算机逻辑思维的培养、3、项目实践和创意编程。其中,基础编程语言的学习 是整个编程教育的根基,主要涉及Scratch、Python等对儿童友好的编程语言。通过这些语言的学习,孩子们不仅能掌握编程的基础知识和技能,还可以逐步对编程…

    2024年4月25日
    500
  • 什么叫全过程项目管理

    全过程项目管理是一种涵盖项目生命周期每个阶段的管理方式,它从项目构想开始,贯穿于规划、执行、监控直至项目结束,强调在项目的各个环节实现精细化、系统化的管理。1、确保项目目标与组织战略相对接、2、优化资源分配和利用、3、提高决策质量和效率是全过程项目管理的核心要素。特别在优化资源分配和利用方面,全过程…

    2024年1月8日
    31900
  • 文件对比软件有什么

    文件对比软件的作用有:一、提高工作效率;二、减少错误;三、支持多种文件类型;四、提供高级功能;五、节省时间和精力。文件对比软件可以帮助用户快速找到文件之间的差异,避免手动查找和比较的繁琐过程,从而提高工作效率。 一、提高工作效率 文件对比软件可以帮助用户快速找到文件之间的差异,避免手动查找和比较的繁…

    2023年4月27日
    32100
  • 工单管理的目的是什么

    工单管理的目的主要有:1、提高生产力;2、提高质量;3、更好的问责制。工单管理是记录、跟踪和处理客户问题的完成情况,客户服务收到客户问题后,将许多无法根据在线交流解决的问题转发给相关部门的服务人员,服务人员将解决问题并反馈给客户服务人员。 1、提高生产力 确切地知道他们必须做什么、何时到期以及如何去…

    2022年11月6日
    1.8K00
  • devops代码托管工具是什么

    开门见山地阐释,DevOps代码托管工具存在于软件开发生命周期中,为实现代码的管理、版本控制及团队合作提供了基础。这类工具的核心作用体现在五个方面,具体包括:1、版本控制和代码同步、2、团队协作和权限管理、3、持续集成和持续部署的支持、4、代码审查和质量保障、5、备份和恢复机制。版本控制和代码同步机…

    2024年3月26日
    15000
  • 奥园oa系统

    奥园OA系统是奥园集团实施企业资源规划ERP、提高管理效率、优化业务流程的办公自动化系统。该系统覆盖财务管理、人力资源、项目管理、行政管理等诸多领域,重点在于实现企业信息化和数字化转型。特别是在人力资源管理方面,奥园OA系统通过数字化工具强化员工信息管理、考勤、绩效评估和培训等模块的功能。 一、系统…

    2024年1月12日
    22100

发表回复

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

400-800-1024

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

分享本页
返回顶部