scala
by Milel F

1. Structural Typing
1.1. "type"
1.2. type Bloggable = { def toHtml(): HtmlFragment }
2. import
2.1. import Top.{B => _, C => _, _}
2.2. import Top2.{A => OtherA}
3. operator overloading
3.1. operator is method
4. nest package
5. == vs. eq()
6. access modifer
6.1. protected
6.1.1. derived class only,only own type
6.2. additional parameter
6.2.1. private[AccessQualifier]
6.2.2. protected[this]
7. companion class/object
7.1. access private,no boundaries
8. type inference
8.1. compile time
8.2. Any<->Nothing
8.3. Option:getOrElse
8.4. "=" or void method
8.5. _* in parameter
8.6. covariance/contravariance
8.6.1. <: upper bound
8.6.2. >: lower bound
8.6.3. List[+T]
8.6.4. List[-T]
9. functional
9.1. function value
9.1.1. is obj in scala
9.2. closure
9.3. high order function
9.3.1. take function as parameter
9.4. currying
9.4.1. fun()()()(),fun{}{}{}{}
9.5. positional notation
9.5.1. _
9.5.2. {max( _, _)}
9.5.3. max _
9.5.4. max
10. with traits
10.1. extends abtract class
10.1.1. limit with by type
10.2. super.xx()
10.2.1. <--
11. implicit type
11.1. Predef
11.2. at most one
12. List
12.1. ::
12.2. :::
12.2.1. faster
13. unary
13.1. def unary_-={}
13.2. +,-,!,~
14. for
14.1. for([pattern<-generator;definition*]+;filter*) [yield] expression
15. match
15.1. ...case List(1,2,[email protected]_*)...print(else)...
15.2. pattern variables-> lowerCase;Contants->upperCase
15.3. case class
15.3.1. sealed
15.3.2. match(some:Any)...case_
15.4. extractor
15.4.1. unapply()
15.4.1.1. return sth. named as parameters
15.4.1.2. vs. apply();oppsite
15.4.2. symbol @ extractor()
15.5. reg ex
15.5.1. is extractor auto
15.5.2. get Or check