4. FP? lambda calculus lambda 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…
7. base 1.原生类型是对象的实例 123.toByte "1".toInt true.toString 2.函数也是值 val compare = (x: Int, y: Int) => x > y compare(1, 2) // result: Boolean = false 3.变量 var Val/lazy val 4.字面量/literals vali = 1234356; //Int val l = 123454L; // Long val f = 0.123; // Float val c = 'a' or '0041'; //Chaar val s = "string" or """ String "ssssss'""" //String val symbol = 'name [scala.Symbol("programming scala") //symbol 5.Predef.scala 一切操作都是函数 一切操作都返回值 }=>
11. parameterized types invariant/不变: 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]的子类