《Java设计模式及实践》—1.2.4 函数式编程

举报
华章计算机 发表于 2019/07/22 10:39:26 2019/07/22
【摘要】 本节书摘来自华章计算机《Java设计模式及实践》一书中的第1章,第1.2.4节,[印度] 卡马尔米特·辛格(Kamalmeet Singh)[荷兰] 艾德里安·伊恩库列斯库(Adrian Ianculescu) 著[罗马尼亚] 路西安-保罗·托尔耶(Lucian-Paul Torje) 张小坤 黄 凯 贺 涛 译.

1.2.4 函数式编程

函数式编程是声明式编程的子范式。与命令式编程相反,函数式编程不会改变程序的内部状态。

在命令式编程中,函数更多地被视为指令、例程或过程的序列。它们不仅依赖于存储在存储器中的状态,而且还可以改变该状态。这样,根据当前程序的状态,使用相同参数调用命令式函数可能会产生不同的结果,与此同时,被执行的函数更改了程序的变量。

在函数式编程术语中,函数类似于数学函数,函数的输出仅依赖于其参数,而不管程序的状态如何,完全不受函数是何时执行的影响。

矛盾的是,虽然命令式编程自计算机发明以来就存在,但函数式编程的基本概念却可以追溯到这之前。大多数函数式语言都是基于lambda演算,这是由数学家Alonzo Church于20世纪30年代创建的一种形式化数学逻辑系统。

函数式语言在当时变得如此受欢迎的原因之一是它们可以轻松地在并行环境中运行,这与多线程不太一样。函数式语言支持并行运行的关键在于它们的基本原理:函数仅依赖于输入参数而不依赖于程序的状态。也就是说,它们可以在任何地方运行,然后将多个并行执行的结果连接起来并进一步使用。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。