scalable的语言,可大可小。
纯正的面向对象语言。
Scala和java可以互相调用,scala可以使用java的库,java可以调用Scala的代码
一、函数式编程的定义
二、重要概念
1.纯函数(Pure Function)没有副作用(Side Effect)。
副作用指状态的变化
例子:副作用
var x = 1
def XplusY_V1(y:Int) = x+y
def XplusY_V2(y:Int)={x+=y;x}
第二函数改变了x的值,对x有副作用。第一个函数式纯函数。
2.引用透明性
对于相同的输入,总得到相同的输出。
3.不变形
Immutability 为了获得引用透明性,任何值都不能变化。
4.函数是一等公民
一切都是计算,函数式编程中只有表达式,变量,函数都是表达式。
函数中可以定义函数,函数可以作为参数,函数可以作为返回结果。
5.表达式求职策略
严格求值和非严格求值
6.惰性求值
7.递归函数
三、函数式编程的优点
生产效率高
易于推理
并行编程
多核计算,云计算
四、历史发展
近期崛起。
摩尔定律失效,从单核时代迈向多核时代,函数式编程适用于并行编程。