Functions & evaluation: Evaluation strategies, scope, tail recursion Higher order functions: Higher order functions, currying, evaluation & operators Data and abstraction: Scala class hierarchies, polymorphism Types and pattern matching: Functions as objects, subtyping & generics, variance, OO decomposition, pattern matching, lists Lists: Pairs & tuples, implicit parameters, higher order list functions, reduction of lists Collections: Vector, Seq, Array, String, Set, Map, Iterable, Range, for-expressions Lazy evaluation: Streams, lazy evaluation, infinite sequences
- Akka (actors, futures)
- Streams
- Behaviour testing
- Big Data, Hadoop jobs using scalding
- Reactive