Basics:
- Hello World
- Primitive Types
- Type inference
- Vars vs Vals
- Lazy Vals
- Methods
- Pass By Name
- Infix Notation
- No parens/Brackets
- Default Arguments
- Named Arguments
Classes:
- Introduction
- Inheritance
- Main/Additional Constructors
- Private Constructors
- Uniform Access
- Case Classes
- Objects
- Traits
Collections:
- Lists
- Collection Manipulation
- Simple Methods
- Methods With Functions
- Use Cases With Common Methods
- Tuples
Options:
- Option Implementation
- Like Lists
- Practice Application
Types:
- Type parameterization
- Covariance
- Contravariance
- Type Upper Bounds
- 'Nothing' Type
Anonymous Classes:
- Introduction
- Structural Typing
- Anonymous Classes With Structural Typing
Special Methods:
- Apply
- Update
Currying:
- Introduction
- Applications
Implicits:
- Implicit Values/Parameters
- Implicit Conversions
- With Anonymous Classes
- Implicit Classes
- The 'Pipe' Operator
For Loops:
- Introduction
- Coding Style
- With Options
- And flatMap
- Guards
- Definitions
Var Args:
- Introduction
- Ascribing the _* type
Partial Functions:
- Introduction
- Match
- Match Values/Constants
- Match Types
- Extractors
- If Conditions
- Or
- With Collections
- The Unapply
Recursion:
- Examples
- Optimization
More on Traits:
- Stackable Traits
- Examples
Advanced Types:
- F-Bounded Polymorphism
- Self Type Annotation
- Introduction to Type Classes