scala['skeilə] 东白
scala?OOPFPDSL
OOP?数据的抽象化(data abstraction)继承(inheritance)多态(ploymorphism)模块化(module)复用(reuse)类型(type)
FP?lambda calculuslambda x . plus x x(lambda x . plus x x) y rule:	alpha – 变量替换	beta – 值应用{lisp[ML/erlang/haskell]}functionisvalue[hightorderfunction];	nosideeffect; lazy evaluation;	pattern match;  currying/partial funcitons;	tail recursion optimization; etc…
DSL?definition: Domain-Specific Languages/领域特定语言internal DSL便于用库来提供语言特性	easy debug	etc…external DSL	easy design and write[withparser]	newsyntax	etc…
not simple?
base1.原生类型是对象的实例123.toByte"1".toInttrue.toString2.函数也是值val compare = (x: Int, y: Int) => x > ycompare(1, 2) // result: Boolean = false3.变量varVal/lazy val4.字面量/literalsvali = 1234356; //Intval l = 123454L; // Longval f = 0.123; // Floatval c = 'a' or '\u0041'; //Chaarval s = "string" or """ String "ssssss'""" //Stringval symbol = 'name  [scala.Symbol("programming scala") //symbol5.Predef.scala一切操作都是函数一切操作都返回值}=>
trait
companion objects
parameterized typesinvariant/不变: C[T], C is invariant on T如果Tsub或Tsup是T的子类或超类,C[Tsub]或C[Tsup]都不是C[T]类covariant/协变: C[+T], C is covariant on T如果Tsub是T的子类,则C[Tsub]也是C[T]的子类Contravatiant/逆变: C[‐T], C is contravariant on T如果Tsup是T的超类,则C[Tsup]也是C[T]的子类
implicit and type bounds
function
functional data structures
pattern match & case class
concurrent1.thread2.java.util.concurrent3.event/NIO4.Actor	  ==><==
DSL
herding xml in scala
ETC…
THANKS

Scala overview