什么是 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日

相关推荐

  • 大家都用过哪些低代码软件?

    随着数字化转型的深入推进,越来越多的企业开始采用低代码工具来加快应用程序的开发速度。在本文中,我们将介绍常用的低代码工具有哪些?以帮助企业了解并选择适合自己的工具。

    2023年9月26日
    9900
  • 团队日历软件哪个好

    好的团队日历软件有:一、Google Calendar;二、Microsoft Teams;三、Slack;四、Trello;五、Asana;六、Jira。Google Calendar是一种免费的日历软件,适用于个人和团队使用。它具有易于使用的界面和功能强大的应用程序,可以轻松创建、共享和管理日程…

    2023年4月24日
    36200
  • 项目里程碑节点有哪些

    项目里程碑节点有以下几点:1、认可最终的里程碑;2、集体讨论所有可能的里程碑;3、审核备选里程碑;4、对各结果路径进行实验;5、用连线表示里程碑之间的逻辑关系等。认可最终的里程碑,要求参会人员一致认可最终的里程碑,并取得共识。 1、认可最终的里程碑 要求参会人员一致认可最终的里程碑,并取得共识。这项…

    2022年11月30日
    2.1K00
  • 如何优化云原生应用的性能

    在优化云原生应用的性能过程中,多维监控、资源管理、微服务架构优化、自动化与负载均衡是关键。多维监控扮演着预警和性能分析的角色,通过综合考虑CPU使用率、内存使用量、网络I/O、请求延迟这4个核心指标, 可以洞悉应用状况,为优化提供数据支持。资源管理包括合理配置资源限制和要求以保证服务平稳运行,无资源…

    2023年11月15日
    1100
  • Agile 正式升级为 Project ,打造团队卓越交付能力

    PingCode Agile (敏捷开发管理)子产品正式升级为 project (项目管理)。 此次升级,我们在敏捷开发的基础上增加了对瀑布开发的支持。 除此以外,伴随着 PingCode 从刚发布时的4个子产品成长到如今的8个子产品,产品能力更加完善,Project 提供的价值也不再局限于敏捷项目…

    2022年4月8日
    27200
  • app定制开发软件和模板软件的区别是什么

    模板APP就是有固定功能的一个模型,在已有的产品上面对于文字或图片进行简单修改,所以这一类APP很多都是公用一个模板。定制APP就是完全按照用户所想要的需求进行的APP开发,因为所有功能需求都是根据用户搭建,所以包括服务器、版权都是归用户所有。 一、什么是模板APP 模板APP就是有固定功能的一个模…

    2023年5月13日
    6700
  • java update是什么软件

    Java Update是一款由Oracle公司提供的更新软件。它主要用来更新Java运行时环境,即Java虚拟机。通过Java Update,用户可以下载并安装最新版本的Java运行时环境,以保证Java程序的正常运行。它通过最新的Java发行版使您的Windows计算机保持最新。 一、java u…

    2023年3月19日
    40200
  • 如何平衡员工个人发展和组织需求

    平衡员工个人发展和组织需求是一项复杂的任务,主要涉及以下策略:1、了解员工的职业兴趣和期望;2、提供职业培训和发展机会;3、建立灵活的工作制度;4、加强沟通和反馈;5、创造积极的组织文化。其中,加强沟通和反馈尤为重要,因为通过开放和诚实的沟通,员工和管理层可以共同了解彼此的需求和期望,从而找到一个既…

    2023年8月21日
    22700
  • 信息系统项目管理师是什么

    信息系统项目管理师,属于计算机技术与软件(高级)专业技术资格。通过本考试的合格人员能够掌握信息系统项目管理的知识体系,具备管理大型、复杂信息系统项目和多项目的经验和能力;能根据需求组织制订可行的项目管理计划。 信息系统项目管理师,属于计算机技术与软件(高级)专业技术资格。通过本考试的合格人员能够掌握…

    2023年1月30日
    12500
  • 百度与Google的区别

    百度与Google的区别有:一、市场份额;二、搜索结果;三、界面设计;四、搜索数据保护;五、搜索服务;六、搜索语言;七、质量控制;八、收录速度;九、算法更新;十、社交媒体整合。百度是中国最大的搜索引擎,占据了中国市场的绝大部分份额。 一、市场份额 百度是中国最大的搜索引擎,占据了中国市场的绝大部分份…

    2023年5月23日
    1.3K00

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部