Scala概述

一 特性

1、Scalable编程语言
2、纯正的面向对象语言
3、函数式语言
4、无缝的java互操作
 
二 函数式编程思想
1、什么是函数式编程
“就是只用纯函数来编写程序啦”
纯函数,或函数的纯粹性,没有副作用。
副作用是状态的变化。
例如:修改了全局变量、抛出了异常、IO读写、调用有副作用的函数。


 
上例中XplusY_V1对X不具备副作用,它是一个纯函数。
XplusY_V2对X具有副作用。
2、引用透明性
对于相同的输入,总得到相同的输出。
3、纯函数
如果f(x)的参数x和函数体都是引用透明的,那么函数f是纯函数。
4、例子:违反引用透明。


 
append函数违反了引用透明性。
5、不变性
为了获得引用透明性,任何值都不能变化。
6、函数是一等公民
一切都是计算,函数式编程中只有表达式,变量和函数都是表达式。
7、表达式求值策略:严格求值和非严格求值。
8、惰性求值。
定义时不去求值,只有在第一次使用时,才去求值。
9、递归函数
递归实现循环和尾递归。
 
三 函数式编程优点。
1、生产效率高:同样功能的程序,Lisp代码的长度只有C语言的七分之一到十分之一。
2、易于推理。
3、并行编程
4、多核计算、云计算。
 
四 函数式编程的崛起
摩尔定律
多核处理器
云计算时代

猜你喜欢

转载自cakin24.iteye.com/blog/2390357