Scala基础学习-函数式编程思想

夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远。
夫学须静也,才须学也,非学无以广才,非志无以成学。淫慢则不能励精,险躁则不能冶性。
年与时驰,意与日去,遂成枯落,多不接世,悲守穷庐,将复何及。
——诸葛亮《诫子书》
于文章中出现的任何错误请大家批评指出,一定及时修改
有任何想要讨论和学习的问题可联系我:yangmq@aliyun.com


Scala基础学习-函数式编程思想

Scalable编程语言
面向对象语言
函数式语言
无缝的java互操作


一、函数式编程思想的重要概念

  • 纯函数(Pure Function)

  • 函数的纯粹性(purity)

  • 没有副作用(Side Effect)
    副作用是状态的变化(mutation)

  • 应用透明(Referential Transparency)
    对于相同的输入,总是得到相同的输出
    如果f(x)的参数x和函数体都是引用透明的,那么函数f是纯函数

  • 不变性(Immutability)
    为了获得应用透明性,任何值都不能变化

  • 函数是一等公民(First-class Function)
    一切都是计算,函数式编程中只有表达式,变量、函数都是表达式
    表达式求值策略:严格求值 和 非严格求值 (Call By Value vs Call By Name)
    惰性求值(Lazy Evaluation)

  • 高阶函数(Higher order Function)

  • 闭包(Closure)

  • 递归函数(Recursive Function)
    递归实现循环

  • 尾递归(Tail Recursion)

二、函数式编程的优点

  • 生产效率高
    同样功能的程序,Lisp代码的长度可能是C代码的七分之一到十分之一

  • 易于推理(Reasoning)

  • 并行编程

  • 多核计算、云计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HipiCloud

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值