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、多核计算、云计算。
 
四 函数式编程的崛起
摩尔定律
多核处理器
云计算时代
  • 大小: 102.8 KB
  • 大小: 123.1 KB
scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言scala纯粹面向对象语言。java虽然是面向对象语言,但是它不是纯粹的,因为java的基本数据类型不是类,并且在java中还有静态成员变量和静态方法。相反,scala纯粹面向对象的,每个值都是对象,每个操作都是方法调用。 scala也是一个成熟的函数式语言。函数式编程有两个指导思想:①函数是头等值,也就是说函数也是值,并且和其他类型(如整数、字符串等)处于同一地位,函数可以被当作参数传递,也可以被当作返回值返回,还可以在函数中定义函数等等;②程序的操作应该把输入值映射为输出值而不是就地修改,也就是说函数调用不应产生副作用,虽然函数式编程语言鼓励使用“无副作用”的方法,但是scala并不强制你必须这么做。scala允许你使用指令式的编程风格,但是随着你对scala的深入了解,你可能会更倾向于一种更为函数式的编程风格。向函数式编程转变,你就应该尽量去使用val、不可变对象、无副作用方法,而不是var、可变对象、有副作用方法。要明白的是,从指令式编程向函数式编程的转变会很困难,因此你要做好充分的准备,并不断的努力。 scala运行于JVM之上,并且它可以访问任何的java类库并且与java框架进行互操作,scala也大量重用了java类型和类库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值